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

读串口的数据错误后怎么处理

2012-03-02 
读串口的数据异常后怎么办?我是异步读:先读出了包头,知道后面跟的数据长度,假如是100字节,于是我就ReadFil

读串口的数据异常后怎么办?
我是异步读:
先读出了包头,知道后面跟的数据长度,假如是100字节,于是我就ReadFile(hCom,buf,100,&overlapped);
GetOverlappedResult(dlg-> mhCom,&(dlg-> mOverlapped),&dwBytesRead,TRUE);
正常情况下这样就能处理数据了,但是如果下位机只发送了99字节到串口,我的GetOverlappedResult就不能返回,只有下一包数据到来至少一个字节才返回,这样一来数据就发生了错乱,我该怎样避免这样的情况?
谢谢!

[解决办法]
还有就是对你的数据进行封包,定义包头和结束标记,更加稳妥一点,计算校验和

热点排行