学习stm32 蓝牙
1.引脚介绍
引脚 | 名称 / 别名 | 方向 | 电平 / 说明 |
---|---|---|---|
1 | VCC | 输入 | 3.2–6V;邮票孔 / 无底板多为 3.3V;严禁直连 5V,先降压或用带 3.3V 的底板 |
2 | GND | — | 与 MCU 共地 |
3 | TXD | 输出 | 3.3V TTL;接 MCU 的 RX;注意方向 |
4 | RXD | 输入 | 3.3V TTL;接 MCU 的 TX;5V MCU 建议串 220Ω 限流 |
5 | STATE/STA | 输出 | 未连接低电平,已连接高电平;用于状态指示 / LED 驱动 |
6 | KEY/EN | 输入 | 高电平≥200ms 清除已配对从机地址,便于更换从机 |
2.工作模式
一、核心工作模式分类
HC-08 的工作模式可分为 “AT 配置模式” 和 “串口透传模式”,两种模式互斥,且与蓝牙连接状态强关联,具体差异如下表:
工作模式 | 核心功能 | 触发条件 | 蓝牙连接状态 | 典型用途 |
---|---|---|---|---|
AT 配置模式 | 接收 AT 指令,配置模块参数(如设备名、波特率) | 1. 模块上电后 未建立蓝牙连接; 2. 部分固件支持 KEY 引脚触发强制配置 | 未连接(待机) | 模块初始化参数设置 |
串口透传模式 | 透明传输 UART 串口数据与 BLE 无线数据 | 1. 模块上电后 建立蓝牙连接; 2. 部分固件支持 AT 指令强制进入 | 已连接(主从通信) | 实际数据传输(如传感器、控制指令) |
二、关键辅助模式(基于硬件 / 参数配置)
除核心模式外,HC-08 还可通过硬件引脚或 AT 指令配置 “配对模式”“主从角色模式” 等,这些模式是实现特定通信逻辑的基础:
1. 配对模式(清除已配对信息)
HC-08 默认会记忆已配对的从机地址,若需更换通信对象,需先清除配对记忆,对应两种触发方式:
- 硬件触发(KEY 引脚):
模块上电后,将 KEY 引脚接高电平(≥3.3V)并保持 ≥200ms(建议 300ms),松开后模块会清除所有已配对的从机地址,进入 “待新配对” 状态(STATE 引脚低电平)。
注意:KEY 引脚仅用于清除配对,不直接切换工作模式,操作后仍需通过连接状态判断核心模式。 - AT 指令触发:
在 AT 配置模式下,发送AT+CLEAR
指令(具体指令需参考模块固件手册,部分固件为AT+RESET
间接实现),可远程清除配对信息,无需硬件接线。
2. 主从角色模式(决定通信发起方)
HC-08 支持通过 AT 指令配置为 “主机模式” 或 “从机模式”,默认多为从机模式(更常用),两种角色差异如下:
角色模式 | 核心逻辑 | 适用场景 | 配置指令(示例) |
---|---|---|---|
从机模式(默认) | 被动等待其他 BLE 设备(如手机、主机模块)连接,不主动发起连接 | 模块作为 “数据从设备”(如传感器模块、控制执行器),需被手机 / MCU 主机连接 | AT+ROLE=0 (0 = 从机) |
主机模式 | 主动扫描指定 BLE 设备(需提前配置目标从机地址)并发起连接 | 模块作为 “数据主设备”(如 MCU 控制核心),需主动连接传感器从机 | AT+ROLE=1 (1 = 主机);AT+SLA=XX:XX:XX:XX:XX:XX (设置目标从机地址) |
三、模式切换逻辑与状态指示(STATE 引脚)
HC-08 的工作模式切换完全依赖 蓝牙连接状态,而 STATE 引脚(状态输出)可直观反映当前状态,便于硬件判断或 LED 指示,具体对应关系如下:
STATE 引脚电平 | 蓝牙连接状态 | 对应工作模式 | 模块行为 |
---|---|---|---|
低电平 | 未连接(待机) | AT 配置模式 | 可接收 AT 指令配置参数;不传输业务数据 |
高电平 | 已连接(通信中) | 串口透传模式 | 不响应 AT 指令;UART 数据与 BLE 数据透明传输 |
高低电平闪烁(部分固件) | 正在扫描 / 配对中 | 过渡状态(非稳定模式) | 扫描周围 BLE 设备或等待配对,未进入稳定工作 |
四、典型应用场景下的模式切换流程
以 “手机连接 HC-08 传输传感器数据” 为例,完整模式切换与工作流程如下:
- 模块上电初始化:
VCC 接 3.3V、GND 共地,TXD/RXD 接传感器(如温湿度传感器)的 UART 引脚;STATE 引脚低电平,模块进入 AT 配置模式。 - AT 指令配置参数:
通过 MCU 或 USB-TTL 模块向 HC-08 发送 AT 指令,如:AT+NAME=HC08_TEMP
(设置设备名为 “HC08_TEMP”);AT+BAUD=8
(设置串口波特率为 115200bps,需与传感器波特率一致);
配置完成后,发送AT+RESET
重启模块,参数生效。
- 手机发起连接,进入透传模式:
手机蓝牙搜索 “HC08_TEMP” 并配对连接;连接成功后,HC-08 的 STATE 引脚变为高电平,自动切换为 串口透传模式。 - 数据透传:
传感器通过 UART 发送温湿度数据(如 “25.5C, 60% RH”),HC-08 自动将串口数据转为 BLE 无线信号发送给手机;手机发送的控制指令(如 “开启报警”),也会通过 BLE 转为串口数据,由 HC-08 的 TXD 引脚输出给传感器。 - 断开连接,返回配置模式:
手机断开蓝牙连接后,HC-08 的 STATE 引脚恢复低电平,自动退出透传模式,回到 AT 配置模式,可重新配置参数或等待新连接。
五、注意事项
- 模式切换的不可逆性(连接后):
一旦 HC-08 建立蓝牙连接(进入透传模式),将不再响应任何 AT 指令;若需重新配置,必须先断开蓝牙连接(如手机主动断开、模块断电重启)。 - 主从模式的兼容性:
主机模式下,HC-08 需提前通过AT+SLA
指令设置目标从机的 BLE 地址(需从从机模块的 AT 配置中获取),否则无法主动扫描到指定设备。 - 固件差异导致的指令不同:
不同厂商生产的 HC-08 模块可能存在固件差异,部分 AT 指令(如清除配对、设置功率)的格式可能不同(如AT+CLEAR
vsAT+PAIR=0
)
3.AT指令
蓝牙模块的 AT 指令用于配置模块参数(如设备名、波特率、主从角色等),需在 AT 配置模式(模块未建立蓝牙连接时)下使用。
HC-08 蓝牙模块 AT 指令四类分类表
指令类型 | 核心格式 | 核心功能 | 关键说明 |
---|---|---|---|
测试指令 | AT + <X> = ? | 验证模块与串口通信链路是否通畅,确认模块是否正常响应 | 是所有 AT 操作的 “前置检查”,仅返回 “OK” 代表通信正常,指令需大写 |
查询指令 | AT + <X> ? | 读取模块当前已配置的参数(如设备名、波特率、蓝牙地址等) | 用于获取模块当前状态,响应格式通常为 “+ 指令名:参数值”,帮助确认配置是否符合需求 |
设置指令 | AT + <X> = <……> | 自定义修改模块参数(如修改设备名、切换主从模式、设置配对密码等) | 参数需符合模块规定格式(如波特率用特定代码、设备名有长度限制),多数修改需重启模块后生效 |
执行指令 | AT + <X> | 触发模块立即执行预设操作(如重启、清除配对记录、恢复出厂设置) | 操作即时生效,无需额外配置参数,部分指令(如恢复出厂)会清除原有配置,需谨慎使用 |
常用AT指令
指令类型 | 指令格式 | 功能描述 | 响应示例 | 备注 |
---|---|---|---|---|
测试指令 | AT | 测试模块是否响应,验证通信链路 | OK | 必须大写,是所有操作的基础检查 |
信息查询 | AT+VERSION? | 查询固件版本号 | +VERSION:V1.0.0 | 不同版本支持的指令可能有差异 |
信息查询 | AT+NAME? | 查询当前设备名称 | +NAME:HC-08 | 蓝牙搜索时显示的名称 |
信息查询 | AT+BAUD? | 查询当前串口波特率 | +BAUD:9600 | 返回当前实际波特率值 |
信息查询 | AT+ROLE? | 查询主从角色模式 | +ROLE:SLAVE | 返回 "SLAVE"(从机)或 "MASTER"(主机) |
信息查询 | AT+ADDR? | 查询模块蓝牙地址 | +ADDR:AA:BB:CC:DD:EE:FF | 模块唯一标识地址 |
参数设置 | AT+NAME=<名称> | 设置蓝牙设备名称 | OK+NAME:MyDevice | 名称最长 16 字节,需重启生效 |
参数设置 | AT+BAUD=<代码> | 设置串口波特率 | OK+BAUD:115200 | 代码对应:3=9600,6=115200(见说明) |
参数设置 | AT+ROLE=<0/1> | 设置主从角色(0 = 从机,1 = 主机) | OK+ROLE:MASTER | 从机模式默认,主机需配合目标地址设置 |
参数设置 | AT+PIN=<4位数字> | 设置蓝牙配对密码 | OK+PIN:1234 | 部分固件默认无需密码 |
参数设置 | AT+SLA=<从机地址> | 主机模式下指定连接的从机地址 | OK+SLA:AA:BB:CC:DD:EE:FF | 仅主机模式有效 |
执行操作 | AT+RESET | 重启模块(使参数修改生效) | OK+RESET | 重启后新配置生效 |
执行操作 | AT+CLEAR | 清除所有已配对设备信息 | OK+CLEAR | 部分固件用AT+PAIR=0 替代 |
执行操作 | AT+ORGL | 恢复出厂设置(重置所有参数) | OK+ORGL | 谨慎使用,会清除所有自定义配置 |
说明:
波特率代码对应关系(通用标准):
- 0=1200,1=2400,2=4800,3=9600(默认)
- 4=38400,5=57600,6=115200,7=230400
所有指令需在模块未建立蓝牙连接时使用(STATE 引脚低电平),连接后进入透传模式,AT 指令无效。
指令必须大写,部分模块需在指令末尾添加回车符(\r)或回车换行符(\r\n),可通过串口助手测试确认。
4.通信示意图
5.代码演示
一、蓝牙模块收发实验
‘
二、蓝牙遥控插座
项目框图: