HC-05 嵌入式蓝牙串口通讯模块
AT 指令集
HC-05 嵌入式蓝牙串口通讯模块(以下简称模块)具有两种工作模式:命令响应工作
模式和自动连接工作模式,在自动连接工作模式下模块又可分为主(Master)、从(Slave)
和回环(Loopback)三种工作角色。当模块处于自动连接工作模式时,将自动根据事先设定
的方式连接的数据传输;当模块处于命令响应工作模式时能执行下述所有 AT 命令,用户可
向模块发送各种 AT 指令,为模块设定控制参数或发布控制命令。通过控制模块外部引脚
(PIO11)输入电平,可以实现模块工作状态的动态转换。
串口模块用到的引脚定义:
1、PIO8 连接 LED,指示模块工作状态,模块上电后闪烁,不同的状态闪烁间隔不同。
2、PIO9 连接 LED,指示模块连接成功,蓝牙串口匹配连接成功后,LED 长亮。
3、PIO11 模块状态切换脚,高电平-->AT 命令响应工作状态,低电平或悬空-->蓝牙常规工
作状态。
4、模块上已带有复位电路,重新上电即完成复位。
设置为主模块的步骤:
1、PIO11 置高。
2、上电,模块进入 AT 命令响应状态。
3、超级终端或其他串口工具,设置波特率 38400,数据位 8 位,停止位 1 位,无校验位,
无流控制。
4、串口发送字符“AT+ROLE=1\r\n”,成功返回“OK\r\n”,其中\r\n 为回车换行。
5、PIO 置低,重新上电,模块为主模块,自动搜索从模块,建立连接。
指令详细说明
(AT 指令不区分大小写,均以回车、换行字符结尾:\r\n)
1、测试指令:
指令
AT
2、模块复位(重启):
指令
AT+RESET
3、获取软件版本号:
指令
AT+VERSION?
举例说明:
at+version?\r\n
+VERSION:2.0-20100601
OK
4、恢复默认状态:
指令
AT+ORGL
响应
OK
响应
OK
响应
参数
无
参数
无
参数
+VERSION:
OK
Param:软件版本号
响应
OK
参数
无
出厂默认状态:
①.设备类:0
②.查询码:0x009e8b33
③.模块工作角色:Slave Mode
④.连接模式:指定专用蓝牙设备连接模式
⑤.串口参数:波特率—38400bits/s;停止位:1位;校验位:无
⑥.配对码:“1234”
⑦.设备名称:“H-C-2010-06-01”
……
5、获取模块蓝牙地址:
指令
AT+ADDR?
响应
+ADDR:
OK
参数
Param:模块蓝牙地址
蓝牙地址表示方法:NAP:UAP:LAP(十六进制)
举例说明:
模块蓝牙设备地址为:12:34:56:ab:cd:ef
at+addr?\r\n
+ADDR:1234:56:abcdef
OK
6、设置/查询设备名称:
指令
AT+NAME=
AT+NAME?
响应
OK
1、+NAME:
OK——成功
2、FAIL——失败
参数
Param:蓝牙设备名称
默认名称:“HC-05”
例如:
AT+NAME=HC-05\r\n ——设置模块设备名为:“HC-05”
OK
AT+NAME=“HC-05”\r\n ——设置模块设备名为:“HC-05”
OK
at+name=Beijin\r\n ——设置模块设备名为:“Beijin”
OK
at+name=“Beijin”\r\n ——设置模块设备名为:“Beijin”
OK
at+name?\r\n
+NAME: Bei jin
OK
7、获取远程蓝牙设备名称:
指令
AT+RNAME?
响应
1、+NAME:
OK——成功
2、FAIL——失败
参数
Param1:远程蓝牙设备地址
Param2:远程蓝牙设备地址
蓝牙地址表示方法:NAP:UAP:LAP(十六进制)
例如:
模块蓝牙设备地址为:00:02:72:od:22:24,设备名称为:Bluetooth
at+rname? 0002,72,od2224\r\n
+RNAME:Bluetooth
OK
8、设置/查询—模块角色:
指令
AT+ROLE=
响应
OK
AT+ ROLE?
+ ROLE:
OK
参数
Param:参数取值如下:
0——从角色(Slave)
1——主角色(Master)
2——回环角色(Slave-Loop)
默认值:0
模块角色说明:
Slave(从角色)——被动连接;
Slave-Loop(回环角色)——被动连接,接收远程蓝牙主设备数据并将数据原样返回给远程蓝
牙主设备;
Master(主角色)——查询周围 SPP 蓝牙从设备,并主动发起连接,从而建立主、从蓝牙设
备间的透明数据传输通道。
9、设置/查询—设备类:
指令
AT+CLASS=
响应
OK
参数
Param:设备类
蓝牙设备类实际上是一个 32 位
的参数,该参数用于指出设备类
型,以及所支持的服务类型。
默认值:0
具体设置见附件 1:设备类说明
为了能有效地对周围诸多蓝牙设备实施过滤,快速查询或被查询自定义蓝牙设备,用
1、+ CLASS:
AT+ CLASS?
OK——成功
2、FAIL——失败
户可以将模块设置为非标准蓝牙设备类,如:0x1f1f(十六进制)。
10、设备/查询—查询访问码:
指令
AT+IAC=
AT+ IAC?
响应
1、OK——成功
2、FAIL——失败
+IAC:
OK
参数
Param:查询访问码
默认值:9e8b33
具体设置见附件 2:查询访问码说明
访问码设置为 GIAC(General Inquire Access Code:0x9e8b33)通用查询访问码,可用来
发现或被发现周围所有的蓝牙设备;为了能有效地在周围诸多蓝牙设备中快速查询或被查询
自定义蓝牙设备,用户可以将模块查询访问码设置成 GIAC 和 LIAC 以外的数字,如:9e8b3f。
举例:
AT+IAC=9e8b3f\r\n
OK
AT+IAC?\r\n
+IAC: 9e8b3f
OK
11、设置/查询—查询访问模式:
指令
AT+INQM=
,
,
AT+ INQM?
响应
1、OK——成功
2、FAIL——失败
+INQM:,,
OK
参数
Param:查询模式
0——inquiry_mode_standard
1——inquiry_mode_rssi
Param2:最多蓝牙设备响应数
Param3:最大查询超时
超时范围:1~48
(折合成时间:1.28秒~61.44秒)
默认值:1,1,48
举例:
AT+INQM=1,9,48\r\n——查询模式设置:带 RSSI 信号强度指示,超过 9 个蓝牙设备响应则
终止查询,设定超时为 48xl. 28=61.44 秒。
OK
AT+INQM\r\n
+INQM:1, 9, 48
OK
12、设置/查询—配对码:
指令
AT+PSWD=
AT+ PSWD?
响应
OK
+ PSWD :
OK
参数
Param:配对码
默认名称:“1234”
13、设置/查询—串口参数:
指令
AT+UART=
,
,
AT+ UART?
响应
OK
+ UART=,,
OK
参数
Param1:波特率(bits/s)
取值如下(十进制):
4800
9600
19200
38400
57600
115200
23400
460800
921600
1382400
Param2:停止位
0——1 位
1——2 位
Param3:校验位
0——None
1——Odd
2——Even
默认设置:9600,0,0
举例:设置串口波特率:115200,2 位停止位,Even 校验
AT+UART=115200,1,2,\r\n
OK
AT+UART?
+UART:115200,1,2
OK
14、设置/查询—连接模式:
指令
AT+CMODE=
响应
OK
AT+ CMODE?
+ CMODE:
OK
参数
Param:
0——指定蓝牙地址连接模式
(指定蓝牙地址由绑定指令设置)
1——任意蓝牙地址连接模式
(不受绑定指令设置地址的约束)
2——回环角色(Slave-Loop)
默认连接模式:0
15、设置/查询—绑定蓝牙地址:
蓝牙地址表示方法:NAP:UAP:LAP(十六进制)
指令
AT+BIND=
AT+ BIND?
响应
OK
+ BIND:
OK
参数
Param——绑定蓝牙地址
默认绑定蓝牙地址:
00:00:00:00:00:00
蓝牙地址表示方法:NAP:UAP:LAP(十六进制)
绑定指令只有在指定蓝牙地址连接模式时有效!
举例说明:
在指定蓝牙地址连接模式下,绑定蓝牙设备地址:12:34:56:ab:cd:ef
命令及响应如下:
AT+BIND=1234,56,abcdef\r\n
OK
AT+BIND?\r\n
+BIND:1234:56:abcdef
OK
16、设置/查询—LED 指示驱动及连接状态输出极性:
指令
响应
参数
AT+POLAR=
, OK
AT+ BIND?
+ POLAR=,
OK
Param1:取值如下
0——PI08 输出低电平点亮 LED
1——PI08 输出高电平点亮 LED
Param2:取值如下
0——PI09 输出低电平指示连接成功
1——PI09 输出高电平指示连接成功
默认设置:1,1
HC-05 蓝牙模块定义:PI08 输出驱动 LED 指示工作状态;PI09 输出指示连接状态。
举例说明:
PI08 输出低电平点亮 LED,PI09 输出高电平指示连接成功。
命令及响应如下:
AT+POLAR=0,1\r\n
OK
AT+POLAR?\r\n
+POLAR=0,1
OK
17、设置 PIO 单端口输出:
指令
AT+PIO=,
响应
OK
参数
Param1:PIO 端口序号(十进制数)
Param2:PIO 端口输出状态
0——低电平
1——高电平
HC-05 型蓝牙模块为用户提供 PIO 端口资源:PI00~PI07和 PI010,用户可用来扩展输入、
输出端口。
举例说明:
1、PI010 端口输出高电平
AT+PI0=10,1\r\n
OK
2、PI010 端口输出高电平
AT+PI0=10,0\r\n
OK
18、设置 PIO 多端口输出:
指令
AT+MPIO=
响应
OK
参数
Param:PIO 端口序号掩码组合(十进制数)
HC-05型蓝牙模块为用户提供 PIO端口资源:PI00~PI07和 PI010,用户可用来扩展输入、输出端口。
PIO端口序号掩码=(1<<端口序号)
PIO端口序号掩码组合=(PIO端口序号掩码 1|PIO端口序号掩码 2|……)
如:
PI02端口掩码=(1<<2) =0x004
PI010端口掩码=(1<<10)=0x400
PI02和 PI010端口掩码组合=(0x004|0x400)=0x404
举例说明:
1、PI010和 PI02端口输出高电平
AT+MPI0=404\r\n
OK
2、PI04端口输出高电平
AT+PI0=004\r\n
OK
3、PI010端口输出高电平
AT+PI0=400\r\n
OK
5、所有端口输出低电平
AT+MPI0=0\r\n
OK
19、查询 PIO端口输入
指令
AT+MPIO?
响应
+MPIO:
OK
参数
Param——PIO 端口值(16bits)
Param[0]=PI00
Param[1]=PI01
Param[2]=PI02
……
Param[10]=PI010
Param[11]=PI011
HC-05型蓝牙模块为用户提供 PIO端口资源:PI00~PI07和 PI010~PI011,用户可用来扩展输入、输出端
口。
20、设置/查询—寻呼扫描、查询扫描参数:
指令
AT+IPSCAN=
,,
,
AT+IPSCAN?
响应
OK
+IPSCAN: ,,
,
OK
参数
Param1:查询时间间隔
Param2:查询持续时间
Param3:寻呼时间间隔
Param4:寻呼持续时间
上述参数均为十进制数。
默认值:1024,512,1024,512
举例说明:
at+ipscan=1234,500,1200,250\r\n
OK
at+ipscan?
+IPSCAN:1234,500,1200,250
21、设置/查询—SHIFF节能参数:
指令
响应
AT+SNIFF=
,,
,
AT+IPSCAN?
OK
+SNIFF: , ,
,
参数
Param1:最大时间
Param2:最小时间
Param3:尝试时间
Param4:超时时间
上述参数均为十进制数。
默认值:0,0,0,0
22、设置/查询安全、加密模式:
指令
AT+SENM=,,
AT+ SENM?
响应
1、OK——成功
2、FAIL——失败
+ SENM:,,
OK
参数
Param:安全模式,取值如下:
0——sec_mode0+off
1——sec_mode1+non_secure
2——sec_mode2_service
3——sec_mode3_link
4——sec_mode_unknown
Param2 加密模式,取值如下:
0——hci_enc_mode_off
1——hci_enc_mode_pt_to_pt
2——hci_enc_mode_pt_to_pt_and_bcast
默认值:0,0
23、从蓝牙配对列表中删除指定认证设备(Authenticated Device):
指令
响应
参数
Param:蓝牙设备地址
OK
AT+PMSAD=
举例说明:
从配对列表中删除蓝牙地址为:12:34:56:ab:cd:ef的设备
at+rmsad=1234,56,abcdef\r\n
OK——删除成功
或
at+rmsad=1234,56,abcdef\r\n
FAIL——配对列表中不存在 12:34:56:ab:cd:ef蓝牙设备
24、从蓝牙配对列表中删除所有认证设备(Authenticated Device):
指令
AT+RMAAD
响应
OK
参数
无
举例说明:
从配对列表中删除所有蓝牙设备
at+rmaad\r\n
OK
25、从蓝牙配对列表中查找指定的认证设备(Authenticated Device):
参数
指令
响应