前情提要
- 无线通信在嵌入式开发中较为重要,尤其是对一些移动的嵌入式设备,很难做到有线通信,所以学习如何使用无线通信就显得比较重要了,下面就我在使用蓝牙通信中遇到的配对问题进行总结。
HC05 模块
- 对于蓝牙通信,在嵌入式领域用到较多的是HC05蓝牙模块,有比较多的特点:
- 体积小巧,和硬币差不多大
- 主从一体
- 支持AT指令定制化配置
- 支持波特率宽泛(4800~1382400)
- 有状态指示灯
- 有较宽泛的用户群体,资料丰富
- 那么如何来正确的使用它呢,当然是磨刀不误砍柴工了,第一步是将模块配置好。
HC05 模块配置
- 不像一般的开发套件,HC05模块给用户提供高定制化的AT指令集,供用户自定义,根据自身需求对模块进行初始化
AT指令集
- AT指令集是从终端设备(Terminal Equipment,TE)或数据终端设备(Data Terminal Equipment,DTE)向终端适配器(Terminal Adapter, TA)或数据电路终端设备(Data Circuit Terminal Equipment,DCE)发送的。
常见AT指令
-
AT+ADDR 获取蓝牙地址
-
AT+NAME 设置\查询 - 设备名称
-
AT+ROLE 设置\查询 - 设备角色
-
AT+PSWD 设置\查询 - 配对码
-
AT+UART 设置\查询 - 串口参数
-
AT+BIND 设置\查询 - 绑定蓝牙地址
-
那么如何设置AT指令呢?
AT指令设置
- 为了安全性和实用性,HC05模块分为两个模式,数据模式和指令模式,指令模式一般默认工作在38400的波特率下,而数据模式的波特率可由用户自行配置。
- 要实现两种模式的切换,就自然需要额外的操作来区分。
HC05模块如何进入AT指令模式
- 引脚置高,将模块上的AT引脚接高电平后上电(不同模块引脚的叫法不一样,还有叫EN等的)
- 按住模块上的按键后,再上电
- 如何判断是否进入AT指令模式呢?
- 可以通过模块的状态指示灯来判别,数据模式下,指示灯为快闪,进入指令模式后,指示灯为慢闪,可据此分别模块当前模式。
- 学会如何进入指令模式后,要使用蓝牙模块,必然是成双成对的,那么下一步就该学习如何对一对蓝牙进行配对了。
模块配对
- 配对配对,那么首先要知道对方的名字或地址,名字可能会重名,但是地址却是唯一的,所以最保险的手段是通过地址进行配对。
- 物理连接
- 要对蓝牙进行配对,除了两个蓝牙模块外,还需要两个串口TTL模块,并且分别与蓝牙进行连接(TX接RX、RX接TX),并接入电脑。
- 手工配对
- 将两个模块都进入AT指令模式
- AT+NAME?\r\n 查看是否有返回结果,以此判定是否已经进入AT指令模式
- 主机设置
- AT+ROLE = 1\r\n 设置当前模块为主机
- AT+PSWD=4399\r\n 设置配对码为4399
- AT+BIND=2015,2,120758\r\n 绑定从机地址
- AT+UART=9600\r\n 设置波特率为9600
- 从机设置
- AT+ROLE=0\r\n 设置当前模块为从机
- AT+PSWD=4399\r\n 设置配对码为4399(需要和主机配对码一样)
- AT+ADDR?\r\n 查询地址(如2015:2:120758)
- AT+BIND=2015,2,120758\r\n 绑定地址(将查询到的地址中的冒号改为逗号)
- AT+UART=9600\r\n 设置波特率为9600,需要和主机的波特率一致
- 配对完成
- 软件配对
- 该软件只是将指令转化为可视化的软件配置,原理相同,但是比较方便快捷。
- 该软件只是将指令转化为可视化的软件配置,原理相同,但是比较方便快捷。
注意事项
- \r\n代表window下换行符的字符表示,如果手工配置时,你的串口软件勾选了发送新行,则可去除。