You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Arduino与HC-05蓝牙模块自动发送AT指令无响应问题

解决HC-05自动发送AT指令无响应的问题

嘿,作为Arduino新手遇到这种问题太正常了,我帮你捋捋为啥手动输入能行,自动发送就没反应,再给你几个可行的解决方案:

可能的问题原因

  • 模块初始化时间不足:HC-05切换到AT模式后,需要一小段时间完成初始化,你在setup()里刚打开BTSerial就立刻发指令,模块可能还没准备好接收数据。
  • AT指令格式不正确:大部分HC-05模块要求AT指令必须以\r\n(回车换行)结尾,只发"AT"模块可能识别不了这是一条完整的指令。
  • 软串口同步延迟:SoftwareSerial的初始化有时候需要一点缓冲时间,直接发送指令可能会导致数据丢失。

修改后的代码示例

下面是调整后的代码,解决了上面提到的几个问题:

#include <SoftwareSerial.h>
SoftwareSerial BTSerial(10, 11); // 注意接线:HC-05 RX接Arduino 11,HC-05 TX接Arduino 10

void setup() {
  pinMode(9, OUTPUT);
  digitalWrite(9, HIGH); // 拉高引脚切换HC-05到AT模式
  Serial.begin(38400);
  BTSerial.begin(38400);
  
  // 给模块留足初始化时间
  delay(1000);
  
  Serial.println("尝试自动发送AT指令...");
  // 发送带换行的完整AT指令,println会自动添加\r\n结尾
  BTSerial.println("AT");
}

void loop() {
  // 监听模块返回的响应并打印到串口监视器
  if (BTSerial.available()) {
    Serial.write(BTSerial.read());
  }
}

额外调试建议

  • 确认AT模式是否正确进入:HC-05在AT模式下LED会以2秒一次的频率慢闪,如果是快闪说明没进入AT模式,检查引脚9的接线和电平是否正确。
  • 尝试手动指定指令结尾:如果println效果不好,试试直接发送带\r\n的指令:
    BTSerial.write("AT\r\n");
    
  • 核对波特率:有些HC-05的AT模式波特率可能不是38400,常见的还有9600、115200,可以尝试更换波特率测试。

内容的提问来源于stack exchange,提问作者Sreenu Murugesan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:46:57