VB写串口数据采集程序,如何保证返回的数据不会丢失,谢谢

来源:百度知道 编辑:UC知道 时间:2024/05/24 08:43:42
如题,高速采集的时候数据总会丢失,降低速度就一定不会丢失吗,都有什么措施可以采取,高手帮忙
Private Sub ctrMSComm_OnComm()
Static x As Integer
Dim bytInput() As Byte '用于接收数据的字节数组
Dim intInputLen As Integer '收到字节的长度
Select Case ctrMSComm.CommEvent
Case comEvReceive
'如果其他过程关闭了串口,要接收数据先打开串口(每次都关闭串口可以清空缓冲区吗)
i = i + 1
Debug.Print "接收了" & i
If blnReceiveFlag Then
'此处位处理接收的代码
If Not frmMain.ctrMSComm.PortOpen Then
frmMain.ctrMSComm.CommPort = intPort
frmMain.ctrMSComm.Settings = strSet
frmMain.ctrMSComm.PortOpen = True
End If
frmMain.ctrMSComm.InputMode = comInputModeBinary
intInputLen = frmMain.ctrMSComm.InBufferCount
ReDim bytInput(intInputLen)
bytInput = frmMain.ctrMSComm.Input
No1.TempTarget = Byte2Temp(bytInput)

不要反复打开关闭串口 。每次执行操作的时候都会把缓冲区的东西清掉,你也不要清空发送接收区,不用你管,只要你读取了,它就清空了。最好这个独产的进程,只管接收,收下后快速的存到别的地方供你调用。另外缓冲区设置大一些可以避免丢数据。操作得当不会丢掉数据。