关于单片机波特率的问题
时间:10-02
整理:3721RD
点击:
在玩蓝牙串口的时候,波特率9600的时候发送至串口助手的数据(字符型)正常没有问题,当想加入蓝牙功能时,把波特率改为38400,就显示乱码了,求解,用的是51,蓝牙是HC-05模块
HC05模块的波特率是固定的,好像可以通过指令修改。如果波特率不一致就是乱码。
我直接改了单片机的波特率,不知道为什么还是乱码,就连用串口助手发的也乱码了,新人求解
单片机和HC-05模块是相连的吧。你可以先把HC-05模块和单片机断开。看单片机的数据是否正常。
HC05的波特率不是自适应的,需要通过指令设。你开始用9600是正常的,说明HC05的波特率就是9600。如果单片机需要使用其它波特率,就需要修改HC05的波特率才行。
试过了 各种乱码 你知道原因吗波特率9600 的时候 还正常的 改成38400就不正常了
不是 之前9600是电脑上位机(串口助手)的通信,还没有用蓝牙的,改了38400以后 和电脑上位机通信就各种乱码了
那可能是你单片机的晶体频率不支持38400的,串口通信,时钟误差不能超过2%,不然就容易误码。你可以计算一下看看。
真的是这样 所以现在只能改蓝牙模块的咯 谢谢啦
学习一下
首先,收发两侧的波特率要匹配。其次,波特率的精度要够。对于51系,晶体频率的选择非常重要。
嗯嗯 感谢回复,算了一下,52的单片机只能用定时器2去实现38400的波特率了 ,但是不知道为什么,在串口助手上用38400接手没有问题,一连上蓝牙串口就不正常了。。。。下次换一个蓝牙试试
不同设备的误差不同,赶上一个正误差、一个负误差,duang……