串口波特率对通信质量的影响

本文讲述了作者在解决图像板与主机串口通信中遇到的画面更新问题,通过测试发现波特率越高,数据传输的准确性越低。在115200波特率下接收率为93%~98%,而降低到9600波特率时接收率提升到99%~100%。作者反思了因缺少调试信息导致的排查困难,并提出增加调试模块和确认机制以提高通信可靠性。
摘要由CSDN通过智能技术生成

        最近几天由于自己写的图像板显示程序在与主机的串口通信时概率性的出现了

某部分画面不更新的问题。每次测试要烧写程序和连接主机再等待错误出现,相当的头痛,

        当时通信用的波特率是115200,数据位8位,停止位1位,无校验位(然后通信协议

使用数据包的校验进行校验。显示该部分画面的命令包30~150个字节,而且重发几遍,听

经理说以前这样也很是可靠,而且经检测经理写的主机(单片机)程序确实有发送出正常的数据;

就想着应该是自己程序问题了。

        后来到晚上加班时直接加多了个调试界面,发现有时候并未成功接收到该包。于是第二天早上

我测了下不同波特率下的通信情况,主要是测试图像板接收到的和PC机发出的字节数的比例。

在115200波特率下分别发送10K、100k之间的多个数据测得接收率为93%~98%。而在9600波特率下

相应的接收率达到99%~100%。这样看来波特率越大时数据的传输质量就越低 。

当然这只是接收到的,可能在这些数据之中还存在着电平不一致的可能性,导致检验和错误故丢弃。

 

        根据测试结果,再加上我们的通信数据量不大,我改为9600的波特率最后终于成功了。当时还以为是

别人的串口函数封装不好导致的,还自己更换了再中断模式下去读串口的寄存器取数据,结果也使白忙活。

       

        由于这点小问题而花费了一天多将近两天的时间,实在是一次惨痛的教训。主要原因是以为程序简单,没有输出

必要的调试信息。

        因为现在是在一块韩国公司出的单片机上编程,缺乏必要的调试接口。看来以后要写一个调试模块

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值