关于单片机波特率的问题

2019-03-26 13:37发布

在玩蓝牙串口的时候,波特率9600的时候发送至串口助手的数据(字符型)正常没有问题,当想加入蓝牙功能时,把波特率改为38400,就显示乱码了,求解,用的是51,蓝牙是HC-05模块 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
dcexpert
1楼-- · 2019-03-27 16:23
fanzhiwei322 发表于 2015-4-3 23:04
不是 之前9600是电脑上位机(串口助手)的通信,还没有用蓝牙的,改了38400以后 和电脑上位机通信就各种乱码了

那可能是你单片机的晶体频率不支持38400的,串口通信,时钟误差不能超过2%,不然就容易误码。你可以计算一下看看。
fanzhiwei322
2楼-- · 2019-03-27 19:05
dcexpert 发表于 2015-4-3 23:06
那可能是你单片机的晶体频率不支持38400的,串口通信,时钟误差不能超过2%,不然就容易误码。你可以计算一下看看。

真的是这样 所以现在只能改蓝牙模块的咯 谢谢啦
tiankai001
3楼-- · 2019-03-27 19:12
 精彩回答 2  元偷偷看……
chunyang
4楼-- · 2019-03-28 00:19
首先,收发两侧的波特率要匹配。其次,波特率的精度要够。对于51系,晶体频率的选择非常重要。
fanzhiwei322
5楼-- · 2019-03-28 05:49
 精彩回答 2  元偷偷看……
chunyang
6楼-- · 2019-03-28 10:54
fanzhiwei322 发表于 2015-4-9 10:08
嗯嗯 感谢回复,算了一下,52的单片机只能用定时器2去实现38400的波特率了 ,但是不知道为什么,在串口助手上用38400接手没有问题,一连上蓝牙串口就不正常了。。。。下次换一个蓝牙试试

不同设备的误差不同,赶上一个正误差、一个负误差,duang……

一周热门 更多>