Private Sub MsComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvReceive
ReDim ReceiveFrame(MSComm1.InBufferCount)
Print "MSComm1.InBufferCount" & MSComm1.InBufferCount
If MSComm1.InBufferCount = 17 Then
MSComm1.InBufferCount = 0
End If
End Select
我要接收有头和尾的数据,头是35 尾是“H0D”,为什么我把sleep去了就不可以了 ,且加sleep 后,有些数据有时候可以受到,有时候不可以,大家帮忙呀
MSComm1.InputMode = comInputModeBinary '采用二进制接收
MSComm1.InBufferCount = 0 '清空接受缓冲区
MSComm1.OutBufferCount = 0 '清空传输缓冲区
MSComm1.InBufferSize = 100 '接收缓冲区大小
MSComm1.OutBufferSize = 100 '发送缓冲区大小
MSComm1.RThreshold = 1 '设置引发OnComm事件的字节长度
MSComm1.InputLen = 1 '设置Input从接收缓冲读取全部数据
MSComm1.PortOpen = True
Private Sub MSComm1_OnComm()
Sleep (500)
Select Case MSComm1.CommEvent
Case comEvReceive
Do While MSComm1.InBufferCount <> 0
indata = MSComm1.Input
If jieshouok Then
arrt(p) = indata(0)
p = p + 1
Else
If jieshouok = False And indata(0) <> 35 Then
Else
jieshouok = True
arrt(p) = indata(0)
p = p + 1
End If
End If
If indata(0) = 13 And jieshouok Then
'数据处理
p=0
end if
Loop
End Select
end sub