HC-05蓝牙模块数据接收故障求助:Arduino Nano无线传输无输出
Arduino Nano + HC-05 蓝牙无输出问题排查方案
一、硬件连接与HC-05工作模式确认
- 接线必须严格对应:
- HC-05的
VCC接Nano的5V(部分模块支持3.3V,以模块标识为准) - HC-05的
GND接Nano的GND - HC-05的
TX接Nano的数字引脚(比如D2),注意交叉连接(模块TX连Arduino RX) - HC-05的
RX接Nano的数字引脚(比如D3),必须加1K电阻分压(HC-05是3.3V逻辑,直接接Nano的5V TX可能烧毁模块)
- HC-05的
- 确认HC-05处于透传模式:正常透传时模块LED慢闪(约2秒1次);如果是快闪(每秒数次),说明是AT指令模式,切换方法:按住模块按键通电,LED慢闪后松开按键即可。
二、波特率与串口配置完全匹配
- Arduino代码中软串口(若使用
SoftwareSerial)的波特率必须和HC-05默认值一致(多数为9600,部分是38400),例如:#include <SoftwareSerial.h> SoftwareSerial MySerial(2, 3); // 对应Arduino的RX、TX引脚 void setup() { MySerial.begin(9600); // 蓝牙串口波特率必须和HC-05一致 Serial.begin(9600); // USB串口用于调试 } - Windows端串口监视器要选蓝牙对应的COM口(设备管理器里看「蓝牙串行端口」的编号),波特率、数据位(8)、停止位(1)、奇偶校验(无)必须和HC-05参数完全一致。
三、代码逻辑排查
- 确保用软串口(
MySerial)向HC-05发送数据,而非USB串口(Serial)。完整测试代码示例:#include <SoftwareSerial.h> SoftwareSerial MySerial(2, 3); void setup() { Serial.begin(9600); MySerial.begin(9600); } void loop() { // 向蓝牙模块发数据,Windows端应能接收 MySerial.println("============================================================="); MySerial.println("Sleep timer:242"); MySerial.println("Light Sleep: 0 Deep Sleep: 0"); MySerial.println("Total Light Sleep: 0 Total Deep Sleep: 0"); MySerial.println("Total Sleep: 0"); MySerial.println("============================================================="); // 同步打印到USB串口调试 Serial.println("============================================================="); Serial.println("Sleep timer:242"); Serial.println("Light Sleep: 0 Deep Sleep: 0"); Serial.println("Total Light Sleep: 0 Total Deep Sleep: 0"); Serial.println("Total Sleep: 0"); Serial.println("============================================================="); delay(1000); } - 检查代码是否有阻塞逻辑:比如过长的
delay()或死循环,导致无法持续发送数据。
四、Windows端设置与测试
- 打开设备管理器,找到蓝牙串行端口,右键「属性」→「端口设置」,确认所有参数和HC-05一致
- 用Python测试时,确保代码参数正确,且给蓝牙连接留启动时间:
import serial import time ser = serial.Serial('COM3', 9600, timeout=1) time.sleep(2) # 等待蓝牙连接稳定 while True: if ser.in_waiting > 0: data = ser.readline().decode('utf-8').strip() print(data) time.sleep(0.1) - 关闭所有可能占用该COM口的软件,避免端口冲突。
五、HC-05参数重置与确认
- 进入AT模式:按住模块按键通电,LED快闪后,用USB串口连接Nano,串口监视器波特率设为38400,发送
AT,返回OK则AT模式正常 - 发送
AT+UART?,查看当前波特率、数据位、停止位,确保和代码及Windows端一致 - 发送
AT+ORGL恢复出厂设置,重新切换到透传模式测试
内容的提问来源于stack exchange,提问作者Vishwaa Kannan
相关产品推荐
相关产品推荐

