1,451
社区成员
发帖
与我相关
我的任务
分享
Option Explicit
Dim sum As Integer
Dim strData As String
Private Sub Command1_Click()
sum = 0
strData = ""
Text1 = ""
Text2 = ""
Text3 = ""
End Sub
Private Sub Form_Load()
MSComm1.Settings = "9600,n,8,1"
MSComm1.InputMode = comInputModeBinary '采用二进制传输
MSComm1.InBufferCount = 0 '清空接受缓冲区
MSComm1.OutBufferCount = 0 '清空传输缓冲区
MSComm1.RThreshold = 1 '产生MSComm事件
MSComm1.PortOpen = True
End Sub
Private Sub MSComm1_OnComm() '接收数据
Dim BytReceived() As Byte
Dim strBuff As String
Select Case MSComm1.CommEvent
Case 2
sum = sum + 1
Text2 = sum '显示OnComm事件次数
MSComm1.InputLen = 0
strBuff = MSComm1.Input
BytReceived() = strBuff
Dim i As Integer
For i = 0 To UBound(BytReceived)
If Len(Hex(BytReceived(i))) = 1 Then
strData = strData & "0" & Hex(BytReceived(i))
Else
strData = strData & Hex(BytReceived(i))
End If
Next
Text1 = strData
Text3 = Len(strData) / 2
'数据处理代码
End Select
End Sub
Function ReciveBytes(ByVal Count As Long) As Variant
While MSComm1.InBufferCount < Count
DoEvents
Wend
MSComm1.InputLen = Count
ReciveBytes = MSComm1.Input
End Function
'调用
vBytes = ReciveBytes(40)