当前位置: 代码迷 >> WinCE >> wince 5.0 串口有关问题
  详细解决方案

wince 5.0 串口有关问题

热度:55   发布时间:2016-04-28 13:04:50.0
wince 5.0 串口问题
我的驱动里面创建了一个线程,专门用于接收串口接到的数据,部分代码如下:
// 等待串口驱动通知
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()来再次设置事件
------解决方案--------------------
探讨

引用:
WaitCommEvent()后应该接SetCommEvent()来再次设置事件


我在WaitCommEvent()之后有个判断,只会接收RXCHARG事件,如果不是继续等待。

------解决方案--------------------
你的稍后再去读,等数据包完整时什么意思?
waitforcomm这个等到待当RX中已有数据就会触发这个RX事件的。
建议可以readfile多几次。
全频跟单频搜台有什么区别呢
  相关解决方案