问题点:

在使用stm32输出log,通过蓝牙模块HC-06接受log时,发现通过连接蓝牙收到的mcu日志在mobaXterm上中英文均乱码。

猜测原因:

1.串口助手设置的波特率不对
2.mobaXterm的显示编码问题

试验发现,
1.通过MCU串口直接接TTL模块,接收log发现log正常。
2.串了蓝牙之后,在蓝牙上接收就是乱码,排查发现HC-06蓝牙模块默认波特率是9600,而MCU上设置的串口率是115200。

解决方法:

1.通过蓝牙AT设置指令,修改蓝牙模块默认波特率。

设置方式:

步骤操作/指令说明/示例
1. 进入AT模式模块指示灯闪烁上电后,若指示灯持续闪烁,则表示已进入AT指令模式
2. 连接串口USB转TTL工具需将HC-06的TX、RX与USB转TTL工具的RX、TX交叉连接
​3. 基本测试指令AT发送后,若收到OK回应,说明通信正常
​4. 设置波特率指令AT+BAUDxx为波特率编号,例如设置115200波特率:AT+BAUD8
​5. 常用波特率编号4-9600, 8-115200x为波特率编号,例如设置115200波特率:AT+BAUD8

🔧 详细设置步骤

1.硬件连接​
使用一个USB转TTL模块,并按照以下方式连接HC-06:

  • ​HC-06的TXD​ 连接 ​USB转TTL的RXD​
  • ​HC-06的RXD​ 连接 ​USB转TTL的TXD​
  • ​HC-06的VCC​ 连接 ​USB转TTL的5V​(或3.3V,请根据模块规格决定)
  • ​HC-06的GND​ 连接 ​USB转TTL的GND​

​​2. 进入AT指令模式​
将USB转TTL模块插入电脑USB端口给HC-06上电。上电后,HC-06模块上的指示灯会进入持续闪烁状态,这表示它已经处于AT指令模式,可以接收配置指令了。

​3.使用串口调试助手​​

  • 在电脑上打开一个串口调试助手软件(如SSCOM、XCOM等)。
  • 选择USB转TTL模块对应的串口号。
  • 关键设置​:将波特率设置为 ​9600​(这是HC-06出厂时的默认波特率),数据位8位,停止位1位,无校验位。

​我使用的XCOM调试助手,需要勾选发送新行”

​4.发送AT指令测试与设置​

  • 测试通信​:在发送框中输入大写的 AT,然后点击发送。如果一切正常,接收区会显示 OK,这表明电脑与HC-06模块通信成功。
  • 设置波特率​:在发送框中输入波特率设置指令,例如 AT+BAUD8。发送后,如果接收到 OK115200 这样的回复,表示波特率已成功设置为115200。

💡 重要提示与故障排查

​波特率编号表​:常用的波特率编号包括:1 (1200), 2 (2400), 3 (4800), 4 (9600), 5 (19200), 6 (38400), 7 (57600), 8 (115200) 等。
​设置生效​:成功发送波特率设置指令后,​必须关闭当前串口,将串口调试助手的波特率修改为新设置的波特率(例如115200),然后重新打开串口,之后的通信和指令发送都需要使用新的波特率。

修改完成后
蓝牙能模块能正常接受到MCU的log,英文能正常显示,但中文仍显示乱码。

更新mobaXtern设置
在这里插入图片描述
显示正常
在这里插入图片描述

更多推荐