模块简介
HC-05 蓝牙串口通信模块,是基于 Bluetooth Specification V2.0 带 EDR 蓝牙协议的 数传模块。无线工作频段为 2.4GHz ISM,调制方式是 GFSK。模块最大发射功率为 4dBm, 接收灵敏度-85dBm,板载 PCB 天线,可以实现 10 米距离通信。模块自带 LED 灯,可直观判断蓝牙的连接状态。 模块采用 CSR 的 BC417 芯片,支持 AT 指令,用户可根据需要更改角色(主、从模式) 以及串口波特率、设备名称等参数,使用灵活。
二.模块原理
蓝牙模块的通信示意图如下:两个设备主控芯片或单片机分别连接各自的蓝牙模块,即将主控芯片与蓝牙模块的串口控制引脚交叉连接。因为蓝牙模块自带透传功能,简单来说就是主控芯片串口什么数据,蓝牙模块就转发什么数据,所以也可以把主控芯片的串口看作一个带有无线传输的串口。由于蓝牙有主从机之分,模块出厂默认为从机模式。如果需要设置为主机,需要通过AT指令对蓝牙进行设置。
蓝牙模块与单片机的连接图
模块与供电系统为 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 电平转换电路;本人在使用STC89C52单片机是直连,不需要加电平转换电路)。如图:
(注:蓝牙模块自带5V转3.3V电路)。
蓝牙模块与手机APP通讯原理
带有蓝牙模块的单片机与手机APP的通信示意图,如下;蓝牙模块作为从机(蓝牙模块出厂默认为从机模式),安卓手机的蓝牙作为主机;手机在蓝牙界面上主动去搜索蓝牙设备,当搜索到设备“HC-05”时,点击该设备名称,此时会弹出输入匹配密钥,密钥为“1234”;
蓝牙配对成功后,打开蓝牙调试助手,点击“连接设备”;
然后点击“扫描新设备”,然后点击蓝牙名称,即可完成连接。(注:博主演示的蓝牙模块虽然不是HC-05,但是功能和HC-05一样)。
连接好蓝牙后,APP就可显示单片机发送的数据。连接好蓝牙后,APP就可显示单片机发送的数据。
采用STM32单片机测试程序如下:
#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "usart.h"
int main(void)
{
u16 t;
u16 len;
u16 times=0;
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(9600); //串口初始化为9600,APP波特率默认9600
LED_Init(); //LED端口初始化
while(1)
{
printf("Hello World!!\r\n\r\n");
delay_ms(500);
}
}