这是一个VB通用串口事件驱动接收程序。一次性接收一个数据包,数据包可以为任意字节,保证不会丢失一个数据!!!!!
Private Sub MSComm_OnComm()
Dim S() As Byte
Dim SS(1024) As Byte
Static N As Long
Static T As Variant
If (MSComm.CommEvent = comEvReceive) Then
S = MSComm.Input '只要有数据就收进来,哪怕只是一个
If (Timer - T > 0.01) Then '间隔10MS以上就认为是一个新的包
text1="" 'text1用于搜集和显示接收(HEX格式)
N = 0
End If
T = Timer
For i = 0 To UBound(S) '一个数据包可能产生若干个oncomm事件
Text1.Text = Text1.Text & Right("0" & Hex(S(i)) & "H", 3) + " "
SS(N+i)=S(i) '接收数据包缓存于SS()
N=N+UBound(S)
Next i
End If
End Sub