1,451
社区成员
发帖
与我相关
我的任务
分享
' 定义窗体级变量
Dim data(1000) As Single
Dim num As Integer
'初始化:
Private Sub Form_Load()
MSComm1.CommPort = 3
MSComm1.InputMode = 1
MSComm1.RThreshold = 1
MSComm1.SThreshold = 1
MSComm1.Settings = "9600,N,8,1"
MSComm1.PortOpen = True
End Sub
Private Sub Timer1_Timer()
MSComm1.Output = Chr(&H2) & Chr(&H30) & Chr(&H31) & Chr(&H30) & Chr(&H30) & Chr(&H38) & Chr(&H30) & Chr(&H31) & Chr(&H3) & Chr(&H35) & Chr(&H44) 'D4
'MSComm1.Output = Chr(&H2) & Chr(&H30) & Chr(&H31) & Chr(&H30) & Chr(&H30) & Chr(&H43) & Chr(&H30) & Chr(&H31) & Chr(&H3) & Chr(&H36) & Chr(&H38) 'D6
End Sub
'每发送一次指令,触发下面事件,返回数据串
Private Sub MSComm1_OnComm()
Dim Inbyte() As Byte
Dim buffer As String
Dim datastr(20) As String
Dim dataV As Long
ReDim Inbyte(8)
Select Case MSComm1.CommEvent
Case comEvReceive
Inbyte = MSComm1.Input
Text1.Text = Inbyte
Case comEvSend
End Select
datastr(1) = Chr(Inbyte(3))
datastr(2) = Chr(Inbyte(4))
datastr(3) = Chr(Inbyte(1))
datastr(4) = Chr(Inbyte(2))
dataV = Val("&H" & datastr(1)) * (16 ^ 3) + Val("&H" & datastr(2)) * (16 ^ 2) + Val("&H" & datastr(3)) * (16 ^ 1) + Val("&H" & datastr(4)) * (16 ^ 0)
If dataV > 0 Then
Text1.Text = Str(dataV)
End If
End Sub
Option Explicit
Dim data(1000) As Single
Dim num As Integer
Private Sub Command1_Click()
MSComm1.Output = Chr(&H2) & Chr(&H30) & Chr(&H31) & Chr(&H30) & Chr(&H30) & Chr(&H38) & Chr(&H30) & Chr(&H31) & Chr(&H3) & Chr(&H35) & Chr(&H44) 'D4
End Sub
'初始化:
Private Sub Form_Load()
MSComm1.CommPort = 3
MSComm1.InputMode = 1
MSComm1.RThreshold = 1
MSComm1.SThreshold = 1
MSComm1.Settings = "9600,N,8,1"
MSComm1.PortOpen = True
' MSComm2.CommPort = 5
' MSComm2.PortOpen = True
End Sub
'每发送一次指令,触发下面事件,返回数据串
Private Sub MsComm1_OnComm()
Dim Inbyte() As Byte
Dim i As Long
Dim buffer As String
Dim datastr(20) As String
Dim dataV As Long
ReDim Inbyte(8)
Select Case MSComm1.CommEvent
Case comEvReceive
Inbyte = MSComm1.Input
' Text1.Text = Inbyte
Case comEvSend
End Select
For i = 0 To UBound(Inbyte)
Print Inbyte(i)
datastr(i) = Chr(Inbyte(i))
Next
Text1 = Val("&H" & datastr(3)) * (16 ^ 3) + Val("&H" & datastr(4)) * (16 ^ 2) + Val("&H" & datastr(1)) * (16 ^ 1) + Val("&H" & datastr(2)) * (16 ^ 0)
End Sub
代码OnComm事件代码请按以上修改,不会报错。至于打开COM报错,是其它原因引起。