串口读数据问题(达人来看下!)
本帖最后由 lgq0077 于 2009-7-8 20:57 编辑串口要读的数据是这样的:
1s发200组数据,一组数据有23个字节,第一个字节是帧头,最后一个字节是校验码,每读到一组数据中间的21个字节都要进行异或,异或的结果和校验码比较,不一样的话这组数据就剔除。
我是这样做的:
读取串口,每次读一个,判断是否为帧头,如果是,就再从串口读取22个字节,并对着22个字节进行异或,结果为0的话,说明这组数据有效,为1,则这组数据是误码。
出现的问题:
1, 误码很多。几乎10s里有4-5个误码,也就是2000组数据中就有4-5组不正常 但下位机发的数据时正常的,用串口助手和同事编的vc程序都没有出现误码。
2,在校验通过的数据中发现,很多组数据都为0(这也是能通过校验的原因).
请高手帮我解答下,这困扰了我很长时间了!! 看版主这个程序咯。应该适合你。串口通信中数据篡位的彻底解决办法:队列缓冲数据!附程序!
http://www.cpubbs.com/bbs/viewthread.php?tid=63745&fromuid=117123 感谢楼上。。 我今天试下 谢谢gigioMM
页:
[1]