Arduino Uno连接HC-05模块时手机向模块发数据出现乱码问题求助
HC-05蓝牙模块接收手机数据乱码解决方案
- 规避硬件串口引脚冲突
你当前将软件串口的TX引脚设置为引脚0,而引脚0是Arduino原生硬件串口Serial的固定RX引脚,会和电脑端串口打印的功能产生信号冲突。直接更换软件串口的TX引脚为其他空闲数字引脚即可,比如改为引脚11,对应接线调整为:HC-05的RX接Arduino 11脚,HC-05的TX接Arduino 10脚,代码中软串口定义修改为SoftwareSerial mySerial(10, 11); // RX, TX。 - 匹配透传模式波特率
你当前代码中mySerial.begin(38400)是HC-05进入AT指令配置模式时的波特率,正常透传通信场景下,绝大多数HC-05的默认波特率为9600,你可以先将该行代码改为mySerial.begin(9600)测试。如果依旧乱码,可先进入AT模式查询HC-05的实际透传波特率参数,再对应修改代码中的波特率数值即可。 - 确认接线交叉规则
蓝牙模块和串口设备通信时需交叉接线,即HC-05的TX引脚接Arduino软串口的RX引脚,HC-05的RX引脚接Arduino软串口的TX引脚,不可同标识直连。
修改后的参考代码:
#include <SoftwareSerial.h> SoftwareSerial mySerial(10, 11); // 软串口RX接10、TX接11,对应接HC-05的TX、RX void setup() { Serial.begin(9600); pinMode(9,OUTPUT); digitalWrite(9,HIGH); Serial.println("蓝牙透传测试启动"); mySerial.begin(9600); // 匹配HC-05透传波特率 } void loop() { if (mySerial.available()) Serial.write(mySerial.read()); if (Serial.available()) mySerial.write(Serial.read()); }
内容的提问来源于stack exchange,提问作者wabhou
相关产品推荐
相关产品推荐

