模块使用教程(基于STM32)——蓝牙模块
参考教程:https://www.bilibili.com/video/BV1aDndzEEk1/?spm_id_from=333.1387.favlist.content.click
一、蓝牙模块工作原理
1、蓝牙模块简介
(1)蓝牙模块可以将有线串口数据流转换为无线蓝牙数据流,实现无线串口功能,在数据传输过程中,数据不发生任何形式的改变,原封不动地从发送者传到接收者。
(2)几个版本的蓝牙:
蓝牙类别 | 标志 | 特性 |
经典蓝牙 | SPP,蓝牙3.0及以下 | 功耗高,速率较快,先配对后连接 |
低功耗蓝牙 | BLE,蓝牙4.0及以上 | 功耗低,速率较慢,快速连接 增加组网、广播、定位等新功能 |
双模蓝牙 | SPP + BLE | 同时集成经典蓝牙和低功耗蓝牙,兼容性更强 |
(3)根据主从应用分类:
主从类别 | 特性 |
单从机 | 仅能被动等待主设备连接,无法主动发起连接请求 |
主从一体 | 可切换角色为主设备或从设备,作为主设备时,可主动发起连接请求 |
2、硬件连接方式
(1)蓝牙模块串口端与USB转串口模块电气连接(USB与电脑连接),蓝牙端与手机进行无线连接。
(2)蓝牙模块串口端与单片机串口电气连接,蓝牙端与手机进行无线连接。
(3)蓝牙模块串口端与单片机串口电气连接,蓝牙端与另一个蓝牙模块的蓝牙端进行无线连接。
3、模块引脚定义
(1)STATE是连接状态指示引脚,蓝牙未连接时输出高/低电平(具体需要参考数据手册),已连接则反之。
(2)通过控制KEY可控制蓝牙模块进入AT模式,输入高/低电平(具体需要参考数据手册),蓝牙模块进入AT模式,该引脚往往连接按键模块。
(3)GND和VCC分别为接地引脚和电源供电引脚,电源电压值需要参考数据手册。
(4)RXD和TXD为串口通信引脚。
4、蓝牙模块配置(AT模式)
(1)AT模式下可配置蓝牙模块的参数,如果模块的KEY引脚连接按键,蓝牙未连接或者连接后按住按键不放(不同模块可能不一样,需参考模块对应的数据手册),可以使模块进入AT模式,此时通过串口发送AT指令,可对蓝牙模块进行配置,蓝牙模块也会返回相应的信息。
(2)AT指令集(以HC-04为例,非完全,仅列举一部分,不同蓝牙模块的AT指令和进入AT模式的方法都可能不同,需参考模块对应的数据手册):
AT指令(+也是指令的一部分) | 功能 |
AT | 测试通讯 |
AT+BAUD=xx(“xx”为需要设置的波特率,如仅查询则为“?”) | 查询和设置串口波特率 |
AT+DEFAULT | 参数恢复默认值 |
AT+ROLE=x(“x”为S即设置从机(SPP&BLE双模共存),为M即设置SPP主机(单模)为BM即设置BLE主机(单模),如仅查询则为“?”) | 查询和设置角色(主设备/从设备) |
AT+NAME=xx(“xx”为需要设置的蓝牙名称,如仅查询则为“?”) | 查询和设置经典蓝牙名称 |
AT+PIN=xx(“xx”为需要设置的密码,如仅查询则为“?”) | 查询和设置经典蓝牙配对密码 |
AT+BNAME=xx(“xx”为需要设置的BLE蓝牙名称,如仅查询则为“?”) | 查询和设置BLE蓝牙名称 |
5、手机端软件
蓝牙模块如果与手机端进行无线连接,那么手机端需要有一个软件进行对接,可以获取其他开发者开发的软件,也可以根据实际需求开发一个专门的软件
二、蓝牙模块应用
1、准备工作
(1)按下图所示接好电路,其中USB转串口模块替换为蓝牙模块即可,本实验以HC-04为例进行。
(2)拷贝一份STM32教程中“串口收发文本数据包”的工程文件夹,并更名为“无线串口收发文本数据包”。
2、程序调试
(1)编译程序,将程序下载到开发板中,根据主函数的注释进行调试,不同的是本实验向单片机发送数据不是通过PC端的串口助手,而是手机端的对接软件。
(2)不同软件、不同交互方式可实现的功能不同,读者可自行尝试设计其它交互方式,然后进行调试。