找回密码
 注册
LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 1199|回复: 7

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

[复制链接]
发表于 2009-1-3 14:09:39 | 显示全部楼层 |阅读模式
我的lv是上位机的接收端,下位机是单片机的数据发送,串口通信,下位机每7.5ms发送一次数据,7个字节的数据为一组,第一个字节是数据头,下来的依次是三个轴向的低位和高位,上位机通过判断数据头是否正确后开始接收数据并经过组合后再显示和记录。我现在遇到的问题是,下位机的发送是绝对没有问题的,上位机接收这边偶尔会出现误码的问题,好像总会多个0x00在中间数据的地方,然后导致我的6个数据的组合会错位,而真正的6个数据并没有完全接收到,只是接收了一部分,所以出现了误码。
各位有没有遇到过这种连续接收一组数据的过程中出现误码的情况呢,而且这个出现误码时间段也是不定的,有时候采集一天也没有问题,有时候估计十几分钟就会遇到一次,遇到之后讲程序停止,过一会再启动就没有问题啦,那么如何解决我的这种误码问题呢,请各位兄弟姐妹给个建议吧,郁闷很久了,谢谢啊
发表于 2009-1-3 22:10:09 | 显示全部楼层
单片机是自己开发的程序的话,可以定个协议,比如加个第8字节作为校验和,回来再累加看对不对,不对再要求重发,这样就不会出现误码了,如果校验和对了就显示,否则不显示!
回复 顶

使用道具 举报

发表于 2009-1-4 08:23:04 | 显示全部楼层
串口配置有一个“终止符”,默认是打开的,并且是以“0x0a”作为终止符。您把它关闭试试。
回复 顶

使用道具 举报

 楼主| 发表于 2009-1-6 09:29:32 | 显示全部楼层
单片机是自己开发的程序的话,可以定个协议,比如加个第8字节作为校验和,回来再累加看对不对,不对再要求重发,这样就不会出现误码了,如果校验和对了就显示,否则不显示!
cpubbs 发表于 2009-1-3 22:10



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

使用道具 举报

 楼主| 发表于 2009-1-6 09:30:40 | 显示全部楼层
3# wyb4993


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

使用道具 举报

发表于 2009-1-6 09:50:51 | 显示全部楼层
有误码是允许的,校验和对的情况下才允许显示出来,否则丢掉,重新要求回送数据!
回复 顶

使用道具 举报

 楼主| 发表于 2009-1-7 20:43:29 | 显示全部楼层
有误码是允许的,校验和对的情况下才允许显示出来,否则丢掉,重新要求回送数据!
cpubbs 发表于 2009-1-6 09:50




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

使用道具 举报

发表于 2009-1-7 23:09:20 | 显示全部楼层
作个记号,留着有用。
回复 顶

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2026-9-29 19:27 , Processed in 0.036049 second(s), 6 queries , Gzip On, File On.

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表