HC蓝牙模块
HC06
HC06主从一体化蓝牙模块,可以配置为一个主蓝牙和一个从蓝牙,两个蓝牙之间实现互相通信。
拿到蓝牙之后只需接VCC GND RX TX。
VCC - VCC;GND - GND; RX - TX; TX - RX
连接配置:
首先让蓝牙进入AT模式
先按住蓝牙上的微动开关,然后给蓝牙上电。蓝牙上的红灯慢闪表示进入AT模式。
进行蓝牙AT指令配置
1、打开串口调试助手,选好COM口、波特率选38400,数据位为8,停止位为1。
2、恢复两个蓝牙的默认设置(最好选择文本模式发送AT命令):AT+ORGL\r\n
'\r'是回车,前者使光标到行首,(carriage return)0X0D
'\n'是换行,后者使光标下移一格,(line feed)0x0A
Windows系统里面,每行结尾是“<回车><换行>”,即“\r\n”;
(\r\n代表一个换行,但是我使用的程序不能识别\r\n,所以我只能直接用回车代表)
(使用另一个软件的话,勾选发送新行也可以,也是不能识别\r\n)
3、【(A)主机配置】蓝牙名字配置:AT+NAME=xxx(名字任意)
4、【(A)主机配置】蓝牙模式配置:AT+ROLE=1(主机模式)
5、【(A)主机配置】蓝牙密码配置:AT+PSWD=1234(密码任意)
6、【(B)从机配置】蓝牙名字配置:AT+NAME=xxx(名字要一致)
7、【(B)从机配置】蓝牙模式配置:AT+ROLE=0(从机模式)
8、【(B)从机配置】蓝牙密码配置:AT+PSWD=1234(密码要一致)
9、蓝牙地址的绑定,通过串口助手查询B蓝牙的地址:AT+ADDR?
10蓝牙A绑定蓝牙B的地址,给蓝牙A(主蓝牙)发送指令:AT+BIND=(B的地址) ,注意在绑定地址的时候要把查询到的地址中的冒号换成逗号,例如98d3:51:fd8103,应该换成98d3,51,fd8103。
11、按照相同的方式,查询A的地址,让B绑定A的地址。
12、蓝牙的连接模式配置:AT+CMODE=0(0是指定蓝牙地址连接模式,设置为0才能自动的连接绑定的地址)
也可以不绑定地址,一但绑定地址那就只能两个绑定地址的蓝牙连接,其他的设备就不能连接了,所以可以不绑定地址。这样就要改变蓝牙的连接模式:AT+CMODE=1(这样两个蓝牙之间可以连接,手机 也可以 连接)
14、设置两个蓝牙的波特率:AT+UART=9600,0,0(保证两个蓝牙的波特率相同,在我们初始化之后蓝牙的默认波特率会改变,所以我们要 再次设置波特率)。
注意事项:
1.发送指令时,指令加 ?号可以获得信息,指令加 =号是赋值
2.AT+NAME? 可以查询蓝牙的名字,但经常不能用,不知道为什么,去网上需找资料,大部分人也都在反应这个问题
3.AT+CMODE=0 连接绑定地址,AT+CMODE=1 连接任意蓝牙
4.AT+UART?: 获得的参数分别是:波特率,停止位(0:1位 1:2位),校验位(0:NONE 1:Odd 2:Even)
指令 | 功能 | 响应 | 示例 |
---|---|---|---|
AT | 识别是否进入AT模式 | OK | |
AT+NAME / AT+NAME=< param > | 询问名字 / 设置名字 | +NAME:< param >OK | |
AT+RNAME?< param1> | 获取远程蓝牙设备名称: | 1、+NAME:< param2> OK 2、FAIL | |
AT+PSWD / AT+PSWD=< param > | 询问密码 / 设置密码 | +PSWD:2333OK | |
AT+UART /AT+UART=< param >< param2 >< param3 > | 询问波特率/设置波特率(默认9600,0,0);param2:0是1位停止位,1是2位停止位;param3为设置校验位,0位没校验,1为奇校验,2为偶校验。 | +UART:< param>< param >< param >OK | |
AT+ROLE/AT+ROLE=< param > | 询问主从模式/设置主从模式(返回值:0从;1主) | +ROLE:< param>OK | |
AT+ADDR/AT+ADDR=< param > | 询问/更改模块地址 | +ADDR:< param>OK | |
AT+RMAAD | 清除配对列表 | OK | |
AT+RESET | 复位(重启) | OK | |
AT+ORGL | 恢复默认状态 | OK | |
AT+ IAC? | 询问访问码 +IAC: < param>OK | ||
AT+CMODE/AT+CMODE=< param> | 询问/设置连接方式(0:指定蓝牙地址连接 1:任何蓝牙地址连接 2:回环角色) | + CMODE:< param>OK | |
AT+PMSAD=< param> | 从蓝牙配对列表中删除指定认证设备 | OK | |
AT+STATE | 询问蓝牙工作状态 | + STATE: < param> OK | |
AT+VERSION? | 获取软件版本号 | +VERSION:< param>OK | |
AT+INQ | 询问蓝牙设备(蓝牙地址 设备类 信号强) | +INQ: < param1>,< param2> <param3>OK | |
AT+INQC | 取消查询蓝牙设备 | OK | |
AT+ENSNIFF=< param> | 进入节能模式 | OK | |
AT+EXSNIFF=< param> | 退出节能模式 | OK | |
AT+LINK=< param> | 设备连接 | OK/FAIL; Param:远程设备蓝牙地址 | |
AT+DISC | 断开连接 | 1、+DISC:SUCCESS OK; 2、+DISC:LINK_LOSS OK; 3、+DISC:NO_SLC OK; 4、+DISC:TIMEOUT OK; 5、+DISC:ERROR OK | |
AT+PAIR=< param1>,< param2> | 设备配对 | 1、OK——成功; 2、FAIL——失败 Param1:远程设备蓝牙地址; Param2:连接超时(秒) | |
AT+INIT | 初始化 SPP规范库 | 1、OK——成功;2、FAIL——失败 | |
AT+MRAD? | 获取最近使用过的蓝牙认证设备地址 | + MRAD :< param> OK ; Param:最近使用过的蓝牙设备地址 | |
AT+ADCN? | 获取蓝牙配对列表中认证设备数 | +ADCN:< param> OK; Param:配对列表中蓝牙设备数 | |
AT+FSAD=< param> | 从蓝牙配对列表中查找指定的认证设备 | 1、OK——成功 2、FAIL——失败 | |
AT+RMAAD | 从蓝牙配对列表中删除所有认证设备 | OK | |
AT+SENM=< param>,< param2>,AT+ SENM? | 设置/查询安全、加密模式 | 1、OK——成功 2、FAIL——失败 + SENM:< param>,< param2>,OK | |
AT+SNIFF=< Param1>,< Param2>,< Param3>,< Param4> / AT+IPSCAN? | 设置/查询—SHIFF节能参数 | OK +SNIFF: < Param1> , < Param2> ,< Param3>,< Param4> | |
AT+MPIO? | 查询 PIO端口输入 | +MPIO:< Param> OK | |
AT+PIO=< Param1>,< Param2> | 设置 PIO 单端口输出 | OK | |
AT+MPIO=< Param> | 设置 PIO 多端口输出 | OK | |
AT+BIND=< Param>/AT+ BIND? | 设置/查询—绑定蓝牙地址 | OK + BIND:< param> OK |