完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
前几天因为项目需要,需要用到串口,但实验室只有51单片机,于是就用51单片机来测试。用串口接收数据的时候,由于接收的是字符串,为了避免数据的接收错误,我就单独测试了下串口接收的正确性。我用的12M的晶振,设置了串口的波特率为9600。串口设置是以11.0592M为基准设置的。我用串口调试助手发送数据0-255;然后在显示频上显示,发现只要碰到10、20、30、.......f0的整数数据,那么接收就会出错;一开始我以为是波特率设置的问题,就去找单片机的数据手册改波特率,结果无论我怎么改,最后的结果也是和我这个一样的,否者就是更差。那么问题来了,难道是因为我的晶振用的12M忽略小数位的原因?(计算出现了小数位,而串口设置只能采用整数),这就奇怪了。然而我的老师说不可能是的晶振的问题。这我就更加郁闷了,我就一直坚信应该是晶振的问题,于是我在实验室翻来倒去,终于找到了一个11.0592M的晶振,换上去数据就再也没有出错。从0到255的数据发送就没有出错过,这就是了解了这个串口问题。 那么总结下,对于51单片机的晶振波特率设置,还是其他单片机的晶振波特率设置问题,有些时候需要用到串口,并且还需要对串口的数据进行判断(数据帧头尾),那么在第一时间需要参考该单片机的数据手册来设置相应的波特率,并且用相应的软件来测试下(如果不太相信的话或者数据接收判断出现问题的时候,可以从这个角度来找问题,特别是51单片机这种晶振可以轻易更换的低端单片机,计算波特率出现小数位),测试确实没有问题的时候再来使用串口。希望对大家有一定的启发 |
|
相关推荐
2 个讨论
|
|
你正在撰写讨论
如果你是对讨论或其他讨论精选点评或询问,请使用“评论”功能。
222 浏览 0 评论
零知开源——基于STM32F407VET6零知增强板的四路独立计时器
1690 浏览 0 评论
零知开源——STM32F4实现ILI9486显示屏UI界面系列教程(一):电子书阅读器功能
1747 浏览 0 评论
CW32L010 ESC Driver 电机控制套件快速上手指南
1269 浏览 1 评论
2098 浏览 1 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
13719 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-7-14 00:21 , Processed in 0.608722 second(s), Total 50, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191