
HC-05蓝牙模块——学习笔记

A 引入
A.1 模块和单片机型号说明
模块:HC-05 + USB转TTL
单片机:stm32f103c8t6
函数库:标准库
当然,这只是一个大学生的学习笔记
B 模块介绍
蓝牙模块常用的分为HC-05和HC-06,二者最主要的区别就是HC-05可以当主机(主从一体),而HC-06只能当从机.
因为我学习的是双向通信,所以本文主要以HC-05介绍功能和使用方法
B.1 HC-05简介
HC-05 蓝牙串口通信模块,是基于 Bluetooth Specification V2.0 带 EDR 蓝牙协议的
数传模块。无线工作频段为 2.4GHz ISM,调制方式是 GFSK。模块最大发射功率为 4dBm,
接收灵敏度-85dBm,板载 PCB 天线,可以实现 10 米距离通信。
模块采用邮票孔封装方式,模块大小 27mm×13mm×2mm,方便客户嵌入应用系统之
内,自带 LED 灯,可直观判断蓝牙的连接状态。
模块采用 CSR 的 BC417 芯片,支持 AT 指令,用户可根据需要更改角色(主、从模式)
以及串口波特率、设备名称等参数,使用灵活。
B.2 引脚定义
引脚编号 | 定义 | 说明 |
---|---|---|
1 | TXD | URAT 输出口,用于发送数据 |
2 | RXD | URAT 输入口,用于接收数据 |
3 | VCC | 电源,接3.3V或5V(根据模块规格) |
4 | GND | 接地 |
5 | EN(KEY) | AT指令设置脚,高电平时进入AT模式,低电平时为正常工作模式;与按键功能相同 |
6 | STATE | 蓝牙状态引出脚,未连接时输出低电平,连接时输出高电平 |
B.3 补充说明
1.如封面图,这是一个封装好的模块,输入电压为3.2~6V,模块内置降压到3.3V,注意看买的模块的商家说明
2.通信距离一般为10米,越远越不保证通信质量
3.当配对后蓝牙可以当做全双工串口通信使用,不需用了解具体的蓝牙协议
4.默认值:从机,波特率9600,停止位1,校验位N,如果想要更改可以使用AT指令
C 使用方法
C.1 单向通信
当进行单向通信的时候,我们可以将它直接与stm32的IO口连接,并配置好串口通信(注意要与HC-05串口配置值相同,波特率停止位等,如果要更改可以看后面的AT指令),然后让手机或者其它外设连接蓝牙,利用蓝牙调试助手等工具发送消息,就可以在stm32上面利用串口中断接受到发送的数据。
由上面的操作便可以远处发送指令点灯,遥控车等
当我们对蓝牙进行调试的时候,可以直接用USB转TTL连接蓝牙模块,蓝牙TX接串口RX,蓝牙RX接串口TX,GND相连,VCC接3.3V或5V,然后电脑打开串口助手调好参数,手机连接蓝牙调试助手连接蓝牙(默认名称:HC-05),就可以手机发送电脑接收或者交换。
C.2 AT指令
在使用双向通信之前,要先了解AT指令,这是利用串口发送指令对蓝牙模块配置的过程,通过AT指令可以设置设备名称,设备配对码,设备模式,设备串口参数…..
C.2.1 常用的AT指令
下面是比较常用的几条AT指令:
指令 | 作用 | 回复 | 参数说明 |
---|---|---|---|
AT |
测试指令 | OK |
无 |
AT+ORGL |
恢复默认状态 | OK |
无 |
AT+ADDR |
获取模块蓝牙地址 | +ADDR:<address> |
无 |
AT+NAME=<Param> |
设置设备名称 | OK |
<Param> :设备名称(如"HC-05" ) |
AT+NAME? |
查询设备名称 | +NAME:<name> |
无 |
AT+ROLE=<Param> |
设置模块角色 | OK |
<Param> :0 (从模式),1 (主模式),2 (回环模式) |
AT+ROLE? |
查询模块角色 | +ROLE:<role> |
无 |
AT+PSWD=<Param> |
设置配对码 | OK |
<Param> :配对码(如"1234" ) |
AT+PSWD? |
查询配对码 | +PSWD:<password> |
无 |
AT+UART=<Param>,<Param2>,<Param3> |
设置串口参数 | OK |
<Param> :波特率(如9600 ),<Param2> :停止位(0 -1位,1 -2位),<Param3> :校验位(0 -无校验,1 -奇校验,2 -偶校验) |
AT+UART? |
查询串口参数 | +UART:<baud>,<stop>,<parity> |
无 |
AT+CMODE=<Param> |
设置连接模式 | OK |
<Param> :0 (指定地址连接),1 (任意地址连接),2 (回环模式) |
AT+CMODE? |
查询连接模式 | +CMODE:<mode> |
无 |
AT+BIND=<Param> |
设置绑定地址 | OK |
<Param> :绑定地址(如"98D3,31,F60B0A" ) |
AT+BIND? |
查询绑定地址 | +BIND:<address> |
无 |
模块进入AT模式的该方法
1、模块上电,未配对情况下就是 AT 模式,波特率为模块本身的波特率,默认:9600,发送 AT 指令时需要置高一
次 PIO11。
2、PIO11 置高电平后,再给模块上电,此时模块进入 AT 模式,波特率固定为:38400,可以直接发送 AT 指令
注意:这里的PIO11 置高电平就是那个按钮(长按按钮上电,就会将波特率调到默认的38400)
C.2.2 调试AT指令过程中的问题
问题1:发送指令没有反应
原因1: 在发送AT指令之前,要先将34引脚置高电平,即蓝牙模块上面有个按钮要先按一下,个别指令需用一直按着然后发送
原因2: 可能蓝牙模块与你的串口的波特率不一致,请选择尝试9600和38400波特率,如果都不可以,选择长按按钮复重置到38400的波特率再重新尝试
原因3 AT指令的结尾为”/r/n”,如果你发送的指令没有,可能会没有反应,同事注意符号都为中文
C.3 双向通信
C.3.1 双蓝牙通信配置过程
大家配置的时候,可以在每个操作之后再使用查询指令,确认自己设置的是否正确
建议先对从机操作,下面以我配置过程举个例子:
1 | *********************从机配置********************* |
当全部配置完毕之后,将两个蓝牙模块连接电源,注意EA/KEY引脚不接,然后二者则会自动配对,可以互相发送接受指令.
C.3.2 配置过程遇到的问题
问题1:设置密码的时候返回FAIL
原因1: 设置密码的时候注意密码如果有双引号,不要使用中文输入法,也可以尝试不使用双引号
原因2: 可以询问你的商家给你的模块密码是几位,大多数的HC-05都是四位密码,默认“1234”,但是也有例外,比如我买的密码是6位的,所以需要更改设置密码的长度
问题2:全部设置完了,但是两个蓝牙无法互相连接
原因1: 这里先说明连接成功后的状态,
连线前:
主机未记录从机地址时,快闪;
主机记录从机地址时,慢闪;
从机快闪。
连线后:
LED 两闪一停。
先置高 KEY 脚再给模块上电,进入 AT 指令模式,波特率固定为 38400,
LED 每 2 秒亮 1 秒。
如果无法连接,先检查电路电压是否稳定,或者有没有干扰什么的
原因2: 在设置设置绑定地址的时候,注意地址之间的冒号要更改成英文的逗号,不然可能会出现这个问题
原因3: 注意主机和从机的模式要设置正确,并且主机的连接模式最好设置成0,即指定地址连接(AT+CMODE=0)
参考文献
1.HC-05 蓝牙 2.0 串口模块 用户手册
留言
有问题请指出,你可以选择以下方式:
- 在下方评论区留言
- 邮箱留言
- Title: HC-05蓝牙模块——学习笔记
- Author: H_Haozi
- Created at : 2025-03-11 15:25:30
- Updated at : 2025-03-19 19:25:35
- Link: https://redefine.ohevan.com/2025/03/11/embedded_HC_05/
- License: This work is licensed under CC BY-NC-SA 4.0.