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

Android与Arduino HC-06蓝牙模块通信无响应问题求助

排查HC-06与Arduino蓝牙通信无响应的实用方案

我来帮你一步步梳理这个问题,毕竟我之前折腾蓝牙遥控车的时候,也在HC-06上踩过不少坑😉

1. 先搞定HC-06的基础配置(最容易忽略的点)

HC-06和HC-08的默认参数差异很大,这大概率是替换后出问题的核心:

  • 找个USB-TTL模块,直接连HC-06(划重点:VCC必须接3.3V!接5V会直接烧模块,我之前吃过这个亏),接线:HC-06的TX接USB-TTL的RX,RX接USB-TTL的TX,GND和USB-TTL共地。
  • 打开串口监视器,设置波特率为9600(HC-06默认波特率,HC-08可能是其他值),数据位8、停止位1、无奇偶校验,发送AT指令(注意选“NL & CR”模式发送),如果模块返回OK,说明模块本身没问题。
  • 顺便确认下模块的配对密码(默认是1234或0000)和名称,要和Android端设置的完全一致。

2. 检查Arduino的接线与代码逻辑

接线注意事项

如果用Arduino的硬件串口(比如Uno的0、1引脚),上传代码时必须拔掉HC-06的RX/TX线,否则串口被占用会导致代码上传失败。上传完成后再插回去:

  • HC-06的VCC→Arduino 3.3V,GND→GND,TX→Arduino RX(0),RX→Arduino TX(1)。
  • 嫌拔线麻烦的话,推荐用SoftwareSerial库模拟串口,比如用2、3引脚,这样上传代码不用动接线,代码里初始化模拟串口即可。

极简测试代码(先排除代码问题)

先别搞遥控车的电机控制,先把通信通了再说,用这个极简代码测试:

void setup() {
  Serial.begin(9600); // 必须和HC-06的波特率完全一致
  Serial.println("Ready to receive data...");
}

void loop() {
  if (Serial.available() > 0) {
    // 逐字符读取数据
    char receivedChar = Serial.read();
    Serial.print("Got data: ");
    Serial.println(receivedChar);
    
    // 加个测试响应,方便验证
    if (receivedChar == 'F') {
      Serial.println("Forward command detected!");
    }
  }
}

上传代码后,打开串口监视器,发送单个字符(比如F),看是否有反馈。如果还是没有,检查HC-06的RX和Arduino的TX是不是接反了——这个低级错误我犯过不止一次😂

3. Android端发送逻辑排查

Android端的发送格式很容易出问题:

  • 先别发送长字符串,就发送单个字符(比如F、B)测试,排除字符串格式(比如换行符、编码)的干扰。
  • 确保蓝牙连接真的建立了:在Android代码里监听蓝牙连接状态,只有连接成功后再发送数据,别上来就瞎发。
  • 检查Android端的蓝牙输出流是否正确打开,有没有抛出异常。

4. 硬件故障兜底排查

如果上面的步骤都试过还是没反应,就排查硬件:

  • 看HC-06的指示灯:配对成功后应该是慢闪(大概1秒一次),如果是快闪,说明没配对成功,先解决配对问题。
  • 用万用表测HC-06的VCC电压,确保是3.3V左右,电压不稳会导致模块工作异常。
  • 换个HC-06模块试试,排除模块本身损坏的可能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:44:59