bluewater84 发表于 2009-1-3 14:09:39

串口接收数据的间隔性误码的问题

我的lv是上位机的接收端,下位机是单片机的数据发送,串口通信,下位机每7.5ms发送一次数据,7个字节的数据为一组,第一个字节是数据头,下来的依次是三个轴向的低位和高位,上位机通过判断数据头是否正确后开始接收数据并经过组合后再显示和记录。我现在遇到的问题是,下位机的发送是绝对没有问题的,上位机接收这边偶尔会出现误码的问题,好像总会多个0x00在中间数据的地方,然后导致我的6个数据的组合会错位,而真正的6个数据并没有完全接收到,只是接收了一部分,所以出现了误码。
各位有没有遇到过这种连续接收一组数据的过程中出现误码的情况呢,而且这个出现误码时间段也是不定的,有时候采集一天也没有问题,有时候估计十几分钟就会遇到一次,遇到之后讲程序停止,过一会再启动就没有问题啦,那么如何解决我的这种误码问题呢,请各位兄弟姐妹给个建议吧,郁闷很久了,谢谢啊allqq-mogudiandian-49all

cpubbs 发表于 2009-1-3 22:10:09

单片机是自己开发的程序的话,可以定个协议,比如加个第8字节作为校验和,回来再累加看对不对,不对再要求重发,这样就不会出现误码了,如果校验和对了就显示,否则不显示!

wyb4993 发表于 2009-1-4 08:23:04

串口配置有一个“终止符”,默认是打开的,并且是以“0x0a”作为终止符。您把它关闭试试。

bluewater84 发表于 2009-1-6 09:29:32

单片机是自己开发的程序的话,可以定个协议,比如加个第8字节作为校验和,回来再累加看对不对,不对再要求重发,这样就不会出现误码了,如果校验和对了就显示,否则不显示!
cpubbs 发表于 2009-1-3 22:10 http://www.cpubbs.com/bbs/images/common/back.gif


恩,是自己开发的程序,好的,我试试这种方式,谢谢啦

bluewater84 发表于 2009-1-6 09:30:40

3# wyb4993


我试了这种方式了,接收的还是会有误码呢,呜呜,还是随机的误码啊

cpubbs 发表于 2009-1-6 09:50:51

有误码是允许的,校验和对的情况下才允许显示出来,否则丢掉,重新要求回送数据!

bluewater84 发表于 2009-1-7 20:43:29

有误码是允许的,校验和对的情况下才允许显示出来,否则丢掉,重新要求回送数据!
cpubbs 发表于 2009-1-6 09:50 http://www.cpubbs.com/bbs/images/common/back.gif



呵呵,校验和果然很有效啊,这个问题解决了,谢谢元老啦,感激涕零啊,我咋自己没有想到呢呵呵,不过我没要求回送数据,直接丢掉校验和出错的,继续接收对的了,因为我不太清楚如何要求重发呵呵

baby 发表于 2009-1-7 23:09:20

allqq-mogudiandian-111all作个记号,留着有用。
页: [1]
查看完整版本: 串口接收数据的间隔性误码的问题