首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

wince 5.0 串口有关问题

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

热点排行