想用手机控制小车,或者给项目加个无线调试口,HC-05是特别常见的蓝牙串口模块。它做的事很单纯:把蓝牙无线数据透明地转成串口,单片机这边接上TX、RX就当普通串口用,手机端装个蓝牙串口App就能收发。这篇文章把接线和AT指令配置讲明白。

六根线,数据模式真正要接四个
HC-05模块上常见引脚是STATE、RX、TX、GND、VCC、EN。正常数据模式接四个就行:VCC接Arduino的5V,GND接GND,模块的TXD接到Arduino的RX(0),RXD接到Arduino的TX(1)。这里最容易出错的是交叉——模块发数据要往主控的RX走,所以是TXD到主控RX、RXD到主控TX,别接成直线,不然什么都收不到。
STATE引脚是高电平指示,调试时可以接个LED看模块是已连接还是空闲,不接也不影响使用。

想进AT模式,先按住那个小按钮
模块上有个小按键。按住它再给模块供电,就进入AT指令模式,这时波特率是38400,可以用来设置蓝牙名称、配对密码、串口波特率这些参数。发送一个AT回车,返回OK就说明通了;发AT+NAME=xxx可以改名称,AT+PSWD=xxxx设密码,AT+UART=9600,0,0改波特率。要注意AT模式下别直接把Arduino程序里的Serial.println发给它,得用专门的串口助手逐条发。
有几款模块要进入AT模式还得把EN(Key)脚在高电平时通电,具体看板子丝印说明,接法照着来就行。
回到数据模式,以及三个高频坑
AT配置完重新上电,回到数据模式,默认波特率9600,手机蓝牙配对密码默认1234。手机配对后用串口助手连上,往模块发字节,Arduino这边Serial.read能收到;Arduino Serial.print的东西,手机上也能看到。这样一条透明的双向通道就打通了。
常见的坑有三个:一是模块TXD输出是3.3V逻辑,接某些5V主控虽然一般没事,稳妥做法是TX那根线串个分压电阻压一下;二是共地,手机蓝牙数据和Arduino之间地要共好,不然电平会飘;三是别在AT模式下发业务数据,参数会乱。还有,改完波特率要把Arduino侧的Serial.begin也改成一样,否则两边对不上。
HC-05是给MCU项目加无线的最快路径,成本低、上手快。把交叉接线和AT模式搞懂,手机遥控小车、家电语音控制这些就都顺手了。


默认密码1234太经典了,改完记得两个串口波特率要同步,刚开始改漏一个一直乱码
手机装上蓝牙串口App遥控小车,配一次就通了,入门神器
TX和RX交叉这个坑我踩了半小时,接成直线死活收不到,改过来立马好了
AT模式按住按钮上电这步卡住了我,看了这篇才知道要先按住再给电,点亮了