读书人

wince 5.0 串口有关问题

发布时间: 2012-05-20 16:03:12 作者: rapoo

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多几次。
全频跟单频搜台有什么区别呢

读书人网 >WinCE

热点推荐