单片机蓝牙通信入门:HC05模块使用详解
单片机蓝牙通信入门:HC05模块使用详解
本文将详细介绍单片机蓝牙通信技术,重点讲解HC05蓝牙模块的使用方法。内容涵盖蓝牙技术概述、HC05模块参数与引脚功能、工作模式配置(包括配置模式和正常模式)以及实际测试步骤和程序代码示例。
蓝牙介绍
蓝牙(Bluetooth)是一种低成本、近距离的无线通信技术,通常通信距离在10米以内。它运行在2.4GHz的工业、科技和医疗(ISM)无线电波段,无需申请许可证即可使用。
HC05蓝牙模块
HC05参数
HC05是一款高性能的主从一体蓝牙串口模块,支持4800-1382400的宽范围波特率,兼容3.3V或5V单片机系统。出厂默认设置为9600波特率和从机模式。
HC05引脚
HC05蓝牙模块共有6个引脚,但实际使用中只需要连接4个引脚即可。最后一个STA引脚用于配对状态输出,通常不需要连接,因为可以通过手机判断配对状态。
HC05模块的作用
HC05蓝牙模块作为数据中转站,负责在手机和51单片机之间建立无线通信。手机通过蓝牙发送的数据经模块接收后传递给单片机的RXD串口,而单片机TXD串口发送的数据则通过蓝牙模块传回手机。蓝牙模块和单片机之间采用串口通信方式,因此蓝牙模块的发送引脚需要连接到单片机的接收引脚,蓝牙模块的接收引脚需要连接到单片机的发送引脚。
工作模式
配置模式
配置模式用于设置主从机、波特率、密码等信息,使用AT指令进行配置。进入配置模式需要使用USB转TTL模块,将蓝牙模块的VCC连接到3.3V-5V电源,GND接地,TXD连接到USB转TTL模块的RXD,RXD连接到USB转TTL模块的TXD,EN连接到3.3V电源。配置模式下,指示灯每2秒闪烁一次。
常用的AT指令包括:
AT
:检查串口是否正常工作AT+ORGL
:恢复出厂设置AT+ROLE=设置内容
:设置蓝牙模块为主机(1)或从机(0)AT+CMODE=1
:设置蓝牙模块可以与任意设备连接AT+UART=波特率,0,0
:设置正常模式的波特率,通常为9600AT+NAME=蓝牙名称
:设置蓝牙模块名称AT+PSWD=蓝牙密码
:设置蓝牙连接密码
正常模式
在完成配置模式的设置后,可以进入正常模式进行数据通信。测试步骤包括:
- 将程序烧录到单片机后,拔掉串口跳线帽再连接蓝牙模块,避免与电脑串口冲突
- 引脚接线与配置模式相同,但将USB转TTL模块替换为51单片机,不连接蓝牙EN引脚
- 烧录好的单片机连接HC05模块后,指示灯会持续闪烁表示等待连接
- 打开手机蓝牙并使用SPP蓝牙串口软件搜索设备,输入配对密码完成配对
- 配对成功后,蓝牙模块的红灯停止闪烁,可以通过手机向单片机发送数据控制LED灯
烧录的程序
本示例程序实现通过蓝牙调试助手发送数据控制P2口LED灯的亮灭,并在调试器中显示发送的数据。程序采用接收中断方式接收数据,接收到的数据会发回到上位机。
#include <regx52.h>
unsigned char dat=0,flag=0;
void initscon(){
SCON=0x50; //8位异步通信方式,允许接收数据
TMOD=0x20; //配置波特率发生器T1,工作方式为2
TH1=0xFD; //重置TL1
TL1=0xFD; //设置初值
ES=1; //开启串口中断
EA=1; //开启总中断
TR1=1; //打开波特率发生器T1
}
void main(){
initscon();
while(1){
if(flag){
SBUF=dat; //向串口助手发送数据
flag=0;
}
}
}
void scon_isr() interrupt 4
{
if(TI){
TI=0; //数据发送完清TI
}
if(RI){
RI=0;
dat=SBUF; //接收串口助手发送的值
switch(dat){
case 1:P2_0=~P2_0;break;
case 2:P2_1=~P2_1;break;
case 3:P2_2=~P2_2;break;
case 4:P2_3=~P2_3;break;
case 5:P2_4=~P2_4;break;
case 6:P2_5=~P2_5;break;
case 7:P2_6=~P2_6;break;
case 8:P2_7=~P2_7;break;
default:P2=0xff;
}
flag=1;
}
}