stm32通过蓝牙模块发送数据,接受日志显示乱码的问题
·
问题点:
在使用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+BAUDx | x为波特率编号,例如设置115200波特率:AT+BAUD8 |
| 5. 常用波特率编号 | 4-9600, 8-115200 | x为波特率编号,例如设置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设置

显示正常

更多推荐


所有评论(0)