模块介绍

特点简介

HC-05 蓝牙串口通信模块,是基于 Bluetooth Specification V2.0 带 EDR 蓝牙协议的数传模块。无线工作频段为 2.4GHz ISM,调制方式是 GFSK。模块最大发射功率为 4dBm,接收灵敏度-85dBm,板载 PCB 天线,可以实现 10 米距离通信。

模块采用邮票孔封装方式,模块大小 27mm×13mm×2mm,方便客户嵌入应用系统之内,自带 LED 灯,可直观判断蓝牙的连接状态。

模块采用 CSR 的 BC417 芯片,支持 AT 指令,用户可根据需要更改角色(主、从模式)以及串口波特率、设备名称等参数,使用灵活。

W1ayfs.png

基本参数

参数名称 参数值 参数名称 参数值
型号 HC-05 模块尺寸 27*13*2mm
工作频段 2.4G 空中速率 2Mbps
通讯接口 UART3.3VTTL电平 天线接口 内置PCB天线
工作电压 3.0V~3.6V 通信电流 40mA
RSSI支持 不支持 接收灵敏度 -85dBm@2Mbps
通信电平 3.3V 工作湿度 10%~90%
发射功率 4dBm(最大) 存储温度 -40°C~+85°C
参考距离 10m 工作温度 -25°C~+75°C

连接说明

模块与单片机 MCU 等设备的连接

W1auy6.png

①:模块与供电系统为 3.3V 的 MCU 连接时,串口交叉连接即可。(模块的 RX 接 MCU 的 TX、模块的 TX 接 MCU的 RX)

②:模块与供电系统为 5V 的 MCU 连接时,可在模块的 RX 端串接一个 220R~1K 电阻再接 MCU 的 TX,模块的TX 直接接 MCU 的 RX,无需串接电阻。(注:请先确认所使用的 MCU 把 3.0V 或以上电压认定为高电平,否则需加上 3.3V/5V 电平转换电路)

注:模块的电源为 3.3V,不能接 5V, 5V 的电源必须通过 LDO 降压到 3.3V 后再给模块供电。

模块之间的连接通讯

W1aKOK.png

设置一个为主机,一个为从机,配对码一致(默认均为 1234),波特率一致,上电即可自动连接。
HC-05 支持一对一连接。
在连接模式 CMODE 为 0 时,主机第一次连接后,会自动记忆配对对象,如需连接其他模块, 必须先清除配对记忆。在连接模式 CMODE 为 1 时,主机则不受绑定指令设置地址的约束,可以与其他从机模块连接。

**注:HC-05-USB 默认为主机,HC-05 默认为从机。 **

模块与手机的连接通讯

W1amS1.png

HC-05 可以与安卓手机自带蓝牙连接,通讯测试可以使用安卓串口助手软件。

模块与 PC 的连接通讯

W1anQx.png

HC-05 直接连接电脑需借助 HC-05-USB 蓝牙虚拟串口与电脑相连。
HC-05 可直接连接电脑的自带蓝牙设备进行通讯。

实例开发

准备工作

两种工作模式

首先,我们应该了解到HC-05蓝牙串口通讯模块具有两种工作模式:命令响应工作模式和自动连接工作模式。在自动连接工作模式下模块又可分为主(Master)、从(Slave)和回环(Loopback)三种工作角色。

  • 当模块处于自动连接工作模式时,将自动根据事先设定的方式连接的数据传输;
  • 当模块处于命令响应工作模式时,能执行AT命令,用户可向模块发送各种AT 指令,为模块设定控制参数或发布控制命令。

进入命令响应工作模式

那么,如何进入命令响应工作模式呢?

进入命令响应工作模式有两种方法:

  • 模块上电,未配对情况下就是AT模式,波特率为模块本身的波特率,默认:9600,发送一次AT指令时需要置高一次PIO11,也就是每发送一次AT指令按一下蓝牙模块上的按键;

  • PIO11 置高电平后(长按按键的过程中上电或者直接将PIO11接到VCC,之后就无需再管了),再给模块上电,此时模块进入AT 模式,波特率固定为:38400,可以直接发送AT指令。

本次的开发采取第二种方法,下文中有说明。

区分工作模式

怎么区分进了命令响应工作模式呢?

在蓝牙模块上有灯,当灯快闪的时候,就是自动连接工作模式;当灯慢闪的时候,就是命令响应工作模式。

模块连线引脚图

W10lwT.jpg

在自动连接工作模式下直接四根线串行通信即可,而在命令响应工作模式下还需要将KEY(PIO11)进行如上说明处理,图中为黄线。

常用AT命令

AT 指令不区分大小写,均以回车、换行结尾,部分 AT 指令需要对模块 34 脚 PIO11 一直置高电平才有效 。

AT 测试指令
AT+RESET HC-05复位
AT+VERSION? 返回HC-05的软件版本号
AT+ADDR? 获得蓝牙模块地址
AT+ORGL 恢复出厂默认设置
AT+NAME=BLUE 修改蓝牙模块的名字为BLUE
AT+NAME? 返回HC-05的名字
AT+PSWD=”1234” 设置密码1234
AT+PSWD? 查询配对密码
AT+UART=115200,1,2 设置串口波特率115200,2位停止位,偶校验
AT+UART? 返回蓝牙波特率
AT+ROLE?
AT+ROLE=1
?: 查询主从状态
=1:设置成主
=0:设置成从
=2:设置成回环

波特率设置的规则如下:

AT+UART=,,

param1: 波特率,可选2400、4800、9600、19200、38400、5760、115200、230400、460800、921600、1382400。

param2: 停止位, 0=1位,1=2位

param3: 校验位, 0=无校验,1=奇校验,2=偶校验

默认设置为9600,0,0

注:此时配置的波特率9600为自动连接工作模式的波特率,命令响应工作模式始终为38400。

配对指令

主机AT指令 从机AT指令
AT(测试指令,正常返回OK) AT(测试指令,正常返回OK)
AT+ORGL(可选操作,恢复默认状态) AT+ORGL(可选操作,恢复默认状态)
AT+NAME=Master(主机名称,可自定义) AT+NAME=Slaver(从机名称,可自定义)
AT+ROLE=1(蓝牙模式为主模式) AT+ROLE=0(蓝牙模式为从模式)
AT+CMODE=1(蓝牙连接地址为任意地址) AT+CMODE=1(蓝牙连接地址为任意地址)
AT+PSWD=12345(蓝牙配对密码,可自定义,需与从机相同) AT+PSWD=12345(蓝牙配对密码,可自定义,需与主机相同)
AT+UART=115200,0,0(蓝牙通信串口波特率,停止位1位,无校检位,可根据需要自主配置,要求与主从机相同) AT+UART=115200,0,0
AT+RMAAD(清空配对列表) AT+RMAAD(清空配对列表)

模块与手机的连接通讯

1)将PIO11置为高电平,蓝牙模块与USB-TTL转换模块连接,再连接到电脑上,进入命令响应工作模式。

2)打开串口调试助手,如图所示:

W1yUZq.png

3)按图中所示,将蓝牙模块配置为从机模式,在此处,建议配置波特率为115200,因为大部分手机蓝牙串口软件常采用115200波特率。然后,将蓝牙模块断电,使PIO11悬空,重新上电,让蓝牙模块进入自动连接工作模式。(此步可忽略,默认情况下蓝牙模块为从机模式)

W1ydoV.png

4)手机下载蓝牙串口助手,我推荐蓝牙调试器,这是我用过手机端最方便的蓝牙调试软件。打开调试软件,连接蓝牙,传输过程如下图所示:

手机已经与蓝牙模块配对成功

W1yad0.jpg

手机通过调试软件发送数据到蓝牙模块,经PC端串口通信接收。

W1ytLn.png

同样地,手机也能收到蓝牙模块发送的数据。

W1yYss.jpg

注:手机端调试软件字符编码格式应选择GBK,否则会出现乱码。

W1y0iT.jpg

模块与 PC 的连接通讯

前三步和模块与手机的连接通讯相同,唯独注意一下,配置自动连接工作模式的波特率为38400,否则会乱码。

4)电脑连接此蓝牙模块,此时再打开一个串口调试助手。

W1gRwn.png

此时,会出现两个虚拟串口,其中只有一个能真正连接到蓝牙模块,试一试就好了。

W1gWoq.png

配置完后如下图所示:

W1g4YV.png

接下来,蓝牙模块就能与 PC 的互相发送数据了。

W1ghF0.png

模块之间的连接通讯

按照上表配对指令,分别将两个蓝牙模块配置为主机、从机。

主机名称和从机名称,可自定义,蓝牙配对密码,可自定义,主从机相同,蓝牙通信串口波特率,可根据需要自主配置,要求与主从机相同。总体比较简单,不再演示说明。

配对成功指示灯说明:

模块配对成功,此时STA双闪(一次闪2下,2秒闪一次)

参考资料

https://blog.csdn.net/weixin_43824231/article/details/95166456?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-0&spm=1001.2101.3001.4242

https://blog.csdn.net/qq_29339467/article/details/95459177

https://blog.csdn.net/u011878611/article/details/109895812

https://blog.csdn.net/u012933659/article/details/89152934