我的驱动里面创建了一个线程,专门用于接收串口接到的数据,部分代码如下:
// 等待串口驱动通知
WaitCommEvent( pSerial->m_hCOM, &dwCommModemStatus, NULL );
// 稍候再去读,等数据包到完整
// 仅处理字符事件
if( !(dwCommModemStatus & EV_RXCHAR) )
continue;
dwBytesRead = pSerial->Read( byRecvBuf, sizeof(byRecvBuf) );
串口始化时设的BUFF长度。
SetupComm( m_hCOM, 1024, 1024) )
发送端的波特率为:38400
每个包间隔为50MS
现在我接收有时候接收到一个包,--》没有问题。
有时候接收到多个包,--》会将最后一个包的部分数据丢了,下次再去读的时候也没有了。
不知我的COMMTIMEOUTS commtimeouts ;怎么设才合理,
希望各位来指点一下。
感激不尽。
------解决方案--------------------
------解决方案--------------------
这个应该是应用来处理吧,不应该在驱动中做。
------解决方案--------------------
------解决方案--------------------
WaitCommEvent()后应该接SetCommEvent()来再次设置事件
------解决方案--------------------
------解决方案--------------------
你的稍后再去读,等数据包完整时什么意思?
waitforcomm这个等到待当RX中已有数据就会触发这个RX事件的。
建议可以readfile多几次。
全频跟单频搜台有什么区别呢