1,451
社区成员
发帖
与我相关
我的任务
分享
Public Function showzhengxing(e As String) As Long
oo$ = e
'以上为命令合成计算
If MSComm1.PortOpen = False Then MSComm1.PortOpen = True '打开通讯口
MSComm1.Output = oo$ '发送命令
Do
X% = DoEvents()
Loop Until MSComm1.InBufferCount >= 2 * 2 + 3
'等待回应
' Delar 0.5
Delay 0.1
Dim a$
Dim l, ascV As Integer
a = MSComm1.Input
Print a
l = Len(a)
' Text3.Text = a
If l > 0 Then
ascV = Asc(Mid(a, 1, 1))
Print ascV
If ascV = 2 Then
'MsgBox "读数据成功!"
End If
Dim Inbyte() As Byte
Dim datastr(80) As String
Dim w1, w2 As Integer
Dim b As Long
Dim dataV As Long
Inbyte = a
' Text1.Text = Inbyte
For I = 0 To UBound(Inbyte) Step 1
' Print Inbyte(i)
datastr(I) = Chr(Inbyte(I))
'Print datastr(i)
' Text2 = Text2 & datastr(i)
'注意显示的是10进制
Next
w1 = (Val("&H" & datastr(6))) * (16 ^ 3) + (Val("&H" & datastr(8))) * (16 ^ 2) + (Val("&H" & datastr(2))) * (16 ^ 1) + (Val("&H" & datastr(4))) * (16 ^ 0)
showzhengxing = w1
End If
'If MSComm1.PortOpen = True Then MSComm1.PortOpen = False '关闭通讯口
'End
End Function
Option Explicit
Public Comm As MSComm
Public Sub OpenComm()
Comm.CommPort = 3
Comm.InputMode = 0
Comm.RThreshold = 8
Comm.SThreshold = 0
Comm.Settings = "9600,e,7,1"
Comm.PortOpen = True
End Sub
Public Sub CloseComm()
Comm.PortOpen = False
End Sub
Public Function showzhengxing(e As String) As Long
Dim Inbyte() As Byte
Dim datastr(80) As String
Dim w1, w2 As Integer
Dim b As Long
Dim dataV As Long
oo$ = e
'ÒÔÉÏΪÃüÁîºÏ³É¼ÆËã
If Comm.PortOpen = False Then Comm.PortOpen = True '´ò¿ªÍ¨Ñ¶¿Ú
Comm.Output = oo$ '·¢ËÍÃüÁî
Do
X% = DoEvents()
Loop Until Comm.InBufferCount >= 2 * 2 + 3
'µÈ´ý»ØÓ¦
' Delar 0.5
Delay 0.1
Dim a$
Dim l, ascV As Integer
a = Comm.Input
Print a
l = Len(a)
' Text3.Text = a
If l > 0 Then
ascV = Asc(Mid(a, 1, 1))
Print ascV
If ascV = 2 Then
'MsgBox "¶ÁÊý¾Ý³É¹¦£¡"
End If
Inbyte = a
' Text1.Text = Inbyte
For I = 0 To UBound(Inbyte) Step 1
' Print Inbyte(i)
datastr(I) = Chr(Inbyte(I))
'Print datastr(i)
' Text2 = Text2 & datastr(i)
'×¢ÒâÏÔʾµÄÊÇ10½øÖÆ
Next
w1 = (Val("&H" & datastr(6))) * (16 ^ 3) + (Val("&H" & datastr(8))) * (16 ^ 2) + (Val("&H" & datastr(2))) * (16 ^ 1) + (Val("&H" & datastr(4))) * (16 ^ 0)
showzhengxing = w1
End If
'If COMM.PortOpen = True Then COMM.PortOpen = False '¹Ø±ÕͨѶ¿Ú
'End
End Function(唉,看见这狗啃的似的代码,心里就不爽。)
Private Sub Form_Load()
Set Comm = MSComm1
End Sub