模块简介  

      HC-05 蓝牙串口通信模块,是基于 Bluetooth Specification V2.0 带 EDR 蓝牙协议的 数传模块。无线工作频段为 2.4GHz ISM,调制方式是 GFSK。模块最大发射功率为 4dBm, 接收灵敏度-85dBm,板载 PCB 天线,可以实现 10 米距离通信。模块自带 LED 灯,可直观判断蓝牙的连接状态。 模块采用 CSR 的 BC417 芯片,支持 AT 指令,用户可根据需要更改角色(主、从模式) 以及串口波特率、设备名称等参数,使用灵活。

android 经典蓝牙读数据 蓝牙模块读取数据_串口

二.模块原理
        蓝牙模块的通信示意图如下:两个设备主控芯片或单片机分别连接各自的蓝牙模块,即将主控芯片与蓝牙模块的串口控制引脚交叉连接。因为蓝牙模块自带透传功能,简单来说就是主控芯片串口什么数据,蓝牙模块就转发什么数据,所以也可以把主控芯片的串口看作一个带有无线传输的串口。由于蓝牙有主从机之分,模块出厂默认为从机模式。如果需要设置为主机,需要通过AT指令对蓝牙进行设置。 

android 经典蓝牙读数据 蓝牙模块读取数据_开发语言_02

蓝牙模块与单片机的连接图
        模块与供电系统为 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电路)。

android 经典蓝牙读数据 蓝牙模块读取数据_android 经典蓝牙读数据_03

 蓝牙模块与手机APP通讯原理
        带有蓝牙模块的单片机与手机APP的通信示意图,如下;蓝牙模块作为从机(蓝牙模块出厂默认为从机模式),安卓手机的蓝牙作为主机;手机在蓝牙界面上主动去搜索蓝牙设备,当搜索到设备“HC-05”时,点击该设备名称,此时会弹出输入匹配密钥,密钥为“1234”;

android 经典蓝牙读数据 蓝牙模块读取数据_开发语言_04

蓝牙配对成功后,打开蓝牙调试助手,点击“连接设备”;

android 经典蓝牙读数据 蓝牙模块读取数据_java_05

然后点击“扫描新设备”,然后点击蓝牙名称,即可完成连接。(注:博主演示的蓝牙模块虽然不是HC-05,但是功能和HC-05一样)。

android 经典蓝牙读数据 蓝牙模块读取数据_android 经典蓝牙读数据_06

连接好蓝牙后,APP就可显示单片机发送的数据。连接好蓝牙后,APP就可显示单片机发送的数据。

android 经典蓝牙读数据 蓝牙模块读取数据_单片机_07

采用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);	
	}	 
 }