HC-06 蓝牙模块完全指南:引脚、AT 指令、主从通信、Arduino 实战与避坑
HC-06 是基于 CSR BC04 蓝牙 2.0/2.1+EDR 协议栈的**从机模块**,以 UART 透传、低成本 (约 $3)、即插即用著称,广泛用于手机/电脑↔单片机无线透传、遥控小车、智能家居、数据采集等场景。本文系统覆盖硬件接口、电气参数、AT 指令集、Arduino 接线驱动、主从配对流程、常见故障排查及升级替代建议。
硬件接口与引脚定义 (典型 6Pin 贴片/直插)
| 引脚 | 标号 | 功能 | 电平/备注 |
|---|---|---|---|
| 1 | KEY / EN | 模式选择 | 低/悬空=透传模式; 高电平=AT 指令配置模式 (上电前拉高) |
| 2 | VCC | 电源输入 | 3.6–6 V (板载 LDO 输出 3.3 V), 峰值电流 50 mA |
| 3 | GND | 地 | – |
| 4 | TXD | 模块→MCU 串口发送 | TTL 3.3 V 电平, 默认 9600 8N1 |
| 5 | RXD | MCU→模块 串口接收 | TTL 3.3 V 电平, **需分压 5V→3.3V** |
| 6 | STATE | 连接状态指示 | 低=未连接, 高=已连接 (可接 LED 或 MCU 读取) |
核心电气参数
- 蓝牙版本:2.0 + EDR (GFSK, π/4-DQPSK, 8DPSK)
- 工作频段:2.402–2.480 GHz ISM
- 发射功率:≤ +4 dBm (Class 2, 约 10 m 空旷距离)
- 接收灵敏度:≤ –84 dBm @ 0.1% BER
- 空中速率:1/2/3 Mbps (EDR),UART 波特率 1200–1382400 bps (默认 9600)
- 工作温度:–20 °C ~ +55 °C
- 尺寸:27×13×2.2 mm (贴片) / 36×16×5 mm (直插底板)
AT 指令速查表 (仅配置模式有效, 波特率 38400 8N1, 无回车换行)
| 指令 | 功能 | 示例/响应 |
|---|---|---|
| AT | 连通性测试 | OK |
| AT+VERSION | 查询固件版本 | OKlinvorV1.8 |
| AT+NAME<name> | 设置蓝牙名称 | AT+NAMEMyCar → OKsetname |
| AT+PIN<xxxx> | 设置配对密码 | AT+PIN1234 → OKsetPIN |
| AT+BAUD<1-8> | 设置 UART 波特率 | 1=1200…4=9600…8=115200 → OKbaud |
| AT+PARI<N/E/O> | 设置校验位 | AT+PARIN → OKparity (N=无,E=偶,O=奇) |
| AT+POLAR<0/1> | STATE 极性 | AT+POLAR1 → OKpolar |
| AT+ROLE | 查询角色 | OK+ROLE:S (Slave 固定, 不可改主机) |
进入 AT 模式:上电前 KEY 拉高 (或按住板载按键) → 上电 → LED 慢闪 (约 2 Hz) → 串口发送 AT 指令。修改生效需**断电重启**。
Arduino Uno 接线与透传示例
接线图 (硬件分压版)
HC-06 Arduino Uno
VCC ────── 5V
GND ────── GND
TXD ────── D0 (RX) *直接接 3.3V 兼容 5V MCU*
RXD ──[1kΩ]──┬──[2kΩ]── GND (分压 5V→3.3V)
│
D1 (TX)
**软串口替代** (释放硬件串口供调试):
`SoftwareSerial bt(2, 3); // RX, TX` // D2 接 HC-06 TXD, D3 接分压后 RXD
透传核心代码
#include
SoftwareSerial bt(2, 3); // RX, TX
void setup() {
Serial.begin(115200);
bt.begin(9600); // 模块默认波特率
Serial.println("HC-06 Ready. Type in Serial Monitor to send.");
}
void loop() {
if (bt.available()) Serial.write(bt.read()); // 蓝牙→USB
if (Serial.available()) bt.write(Serial.read()); // USB→蓝牙
}
主从配对实战流程 (手机作为主机)
- 模块上电进入透传模式 (LED 快闪 ~1 Hz 表示未连接)。
- 手机蓝牙设置 → 搜索设备 → 找到 “HC-06” / 自定义名称 → 点击配对 → 输入密码 “1234” (或已修改的 PIN)。
- 配对成功 → 模块 LED 常亮/慢闪 (视 STATE 极性) → 串口通道建立。
- 手机安装 **“Serial Bluetooth Terminal”** / **“Bluetooth Electronics”** / **自制 App (App Inventor / Flutter / React Native)** 打开串口即可双向收发。
两模块互联 (需一主一从)
HC-06 **固定从机**,无法直接互联。需搭配 **HC-05 (可主从切换)** 或 **ESP32/ESP8266/模块主机模式** 作为主机:
- 主机 (HC-05):`AT+ROLE=1` `AT+CMODE=0` `AT+BIND=<从机MAC>` `AT+INIT` `AT+INQ` `AT+PAIR=<从机MAC>,20` `AT+LINK=<从机MAC>`
- 从机 (HC-06):保持默认透传模式,等待连接。
常见故障与排查
| 现象 | 可能原因 | 对策 |
|---|---|---|
| AT 指令无响应 | 未进入配置模式 / 波特率不匹配 / RX/TX 反接 / 分压电阻值错 | 上电前拉高 KEY, 尝试 9600/38400/115200 自动波特率扫描, 核对分压比 2:1 |
| 手机搜不到设备 | 模块未上电 / 天线被金属屏蔽 / 手机蓝牙版本过低 (需 2.0+) | 检查供电/天线间隙, 换手机测试 |
| 配对成功但收发乱码 | 波特率不一致 / 校验位不匹配 / 供电纹波大 | AT+BAUD 统一波特率, AT+PARIN 无校验, 加 100uF+104 电容滤波 |
| 通信距离 < 3 m | 天线贴近金属/电池/PCB 地平面 / 共存 Wi-Fi 干扰 | 天线区域挖空铜皮, 远离金属, 信道避开 Wi-Fi 1/6/11 |
| 频繁掉线 | 供电不足 (VCC 跌落) / 看门狗复位 / 超出距离 | 独立 3.3V LDO 供电, 加大电解电容, 缩短距离 |
升级替代建议 (2024+ 推荐)
| 模块 | 协议 | 角色 | 优势 | 价格 |
|---|---|---|---|---|
| HC-05 | BT 2.0+EDR | 主/从可切 | 可做主机互联, AT 指令更全 | ~$4 |
| JDY-31 / JDY-23 | BLE 4.2/5.0 | 从机 | 低功耗, 手机直连无配对, 支持透传/Beacon | ~$2.5 |
| ESP32-C3 / ESP32-S3 | Wi-Fi + BLE 5.0 | 主/从 | 自带 MCU, 协议栈全, 二次开发灵活 | ~$3.5 |
| nRF52840 Dongle | BLE 5.2 / Thread / Zigbee | 主/从 | 多协议, 高性能, 适合量产 | ~$10 |
结语
HC-06 以“极简 UART 透传、极低成本、成熟稳定”占据教学、DIY、小批量透传场景半壁江山。掌握 **KEY 引脚模式切换、RXD 分压、AT+BAUD/NAME/PIN 三大核心配置、手机串口终端调试**,即可 15 分钟落地无线串口。新项目若需低功耗、主从互联、Mesh 组网、OTA 升级,请直接拥抱 **ESP32 系列或 Nordic nRF52**,告别蓝牙 2.0 时代。完整原理图、AT 指令手册、App Inventor 源码、PCB 封装库欢迎联系获取。
工业技术