用MSComm控件接收数据时不能连续接收的问题
请教各位,我用MSComm中断事件接收串口数据,数据连续发送,每四字节为一帧,前两字节为FFH,作为帧开始,后两字节为我需要的数据,进行处理,但程序只能接收一次,附程序,请路过的高手帮我看看是什么原因。
Dim ab(3) As Byte '存储接收到的一组字节数据
Dim av As Variant '从接收缓冲区读取数据变量
With MSComm1
.InputMode = comInputModeBinary '设置接收数据为二进制形式
.InputLen = 1 'Input每次从接收缓冲区读取一字节数据
.RThreshold = 4 '接收4字节产生OnComm事件
End With
Private Sub MSComm1_OnComm()
With MSComm1
Select Case .CommEvent '判断MSComm1通讯事件
Case comEvReceive '接受到4个字节产生接收事件
av = .Input '读取第一个字节
ab(0) = av(0) '存储到字节数据类型数组
If ab(0) = &HFF Then
.RThreshold = 0 '关闭OnComm接收事件
av = .Input '读取第二个字节
ab(1) = av(0) '存储到字节数据类型数组
If ab(1) = &HFF Then '判断是否为数据开始标志
av = .Input
ab(2) = av(0)
av = .Input
ab(3) = av(0)'将两字节数据分别读取,存储到字节数据类型数组
数据处理
End If
.RThreshold = 1 '打开MSComm1接收事件
End If
End Select
End With
End Sub