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

HC-05持续输出println消息且无响应,蓝牙通信故障求助

嘿,第一次搞Arduino遥控车项目就碰到蓝牙通信卡壳,太懂这种挠头的感觉了!我帮你梳理几个最实用的排查方向,一步步来解决问题:

蓝牙通信故障排查指南
  • 先锁死硬件连接的正确性
    很多时候问题都出在接线上,别嫌麻烦再核对一遍:

    • HC-05的TX要接Arduino的数字脚6(你代码里SoftwareSerial的RX端),RX接数字脚7(SoftwareSerial的TX端),绝对不能接反!
    • HC-05必须用3.3V供电,别图省事接5V,很容易烧模块;如果是从L293D取电,要确认驱动板的电源能同时带动电机和蓝牙模块。
    • 观察HC-05的状态灯:正常配对成功后是慢闪(约2秒一次),如果一直快闪,说明没和手机配对上,得先重新完成配对步骤。
  • 用最简代码验证通信基础
    你贴的代码只到开头,先把代码简化成纯通信测试版,排除电机驱动的干扰:

    #include <SoftwareSerial.h>
    SoftwareSerial BTSerial(6, 7); // RX对应脚6,TX对应脚7
    
    void setup() {
      Serial.begin(9600); // 电脑串口监视器用来调试
      BTSerial.begin(9600); // 必须和HC-05的波特率完全一致!
    }
    
    void loop() {
      // 测试蓝牙收数据
      if (BTSerial.available()) {
        char received = BTSerial.read();
        Serial.print("蓝牙收到: ");
        Serial.println(received);
        // 回发数据测试双向通信
        BTSerial.print("已收到指令: ");
        BTSerial.println(received);
      }
    }
    

    烧完这段代码后,打开Arduino串口监视器(波特率设9600),用手机蓝牙串口APP(比如Serial Bluetooth Terminal)发个字符,看电脑端能不能收到,同时手机能不能收到回发内容。这一步没反应的话,直接锁定是硬件或波特率问题。

  • 核对HC-05的波特率与AT模式设置
    HC-05默认波特率大多是9600,但少数模块可能是38400或其他值,不确定的话用AT指令确认:

    • 进入AT模式:按住HC-05的按键再上电,状态灯变成1秒一次的慢闪就成功了。
    • 用Arduino硬件串口(RX0、TX1)交叉连接HC-05的TX、RX(注意HC-05接3.3V),串口监视器发送AT,返回OK说明AT模式正常。
    • 发送AT+UART?查询当前波特率,比如返回+UART:9600,0,0就是9600波特率、无校验、1停止位。
    • 波特率不对的话,发送AT+UART=9600,0,0修改,返回OK就生效了。
  • 排除电机驱动的电磁干扰
    电机运行时的电磁噪声很容易干扰蓝牙信号:

    • 给每个电机两端并联100uF电解电容+0.1uF陶瓷电容,减少电机的干扰。
    • 把HC-05模块尽量远离L293D和电机,或者用金属壳简单屏蔽一下蓝牙模块。
    • 确保Arduino、L293D、HC-05的GND全部连在一起,接地要牢固。
  • 确认手机蓝牙APP的细节设置

    • 配对HC-05时,默认密码一般是1234或0000,别输错。
    • 蓝牙APP的波特率必须和HC-05、代码里的波特率完全一致,比如都是9600。
    • 有些APP需要手动选择SPP(Serial Port Profile)服务,别选错了协议。

内容的提问来源于stack exchange,提问作者R. Deok

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:37:50