蓝牙HC05是主从一体的蓝牙串口模块;拿到模块需要对该模块进行配置,比如蓝牙名称、连接时的密码、主从和波特率等。
一、需要的工具:
usb转ttl模块(CH340G)
蓝牙HC-05(我买的是兼容版的,功能没差)
杜邦线4根
二、连线
连接usb转ttl模块和蓝牙模块,把两个模块的VCC口相连,GND口相连,TX和RX交叉相连(既TX连RX,RX连TX)
注意:请勿将电源接到信号脚上,会直接烧坏模块!输入电压禁止超过7V!
注意:蓝牙模块的VCC只能接5V,不能接3.3V!
三、开始设置
连接好两个模块之后,按住蓝牙模块上的小按钮(按住上电是配置模式,直接上电是正常使用模式),然后把usb转ttl模块插上电脑(一直按住小按钮直到通电)。
注意:红灯快闪是正常使用模式,红灯慢闪是配置模式
然后打开串口调试助手,点击通用串口,如上图所示;选择usb转ttl模块的端口(具体是哪个,可以去查看设备管理器中usbttl是哪个com口,如下图所示);
之后选择蓝牙串口,点击AT按钮,如果左边界面出现OK字样就证明已经连接成功了,然后就开始根据需求进行配置
配置:(点完都要再点下手动发送,然后在看左边窗口是否返回ok,才算成功设置)
- 点击设置从机。
- 点击设置模式,在右上角改1为0然后点击手动发送。
- 点击设置波特率,PS:波特率要和单片机的波特率设置为一样,通常51单片机的程序都是用9600,这里默认9600(跟单片机上的晶振的多少而设,11.0592为9600)。
- 设置密码,默认1234,自己随意设置。
- 设置名称,自己随意设置。
四、Android手机与HC-05简单通讯
通过以上步骤配置后,就可以进行简单配置通讯了
1、HC-05与单片机相连(TX连RX,RX连TX)
2、烧录以下事例,主要是对led的控制,数据的收发(有人说烧录程序时,要把蓝牙连接的tx/rx口断开,经测试无需断开,没有任何影响;要是觉得有影响,可以在每次烧录程序前断开该两端口即可)
#include <reg52.h>
sbit led1 = P1^0;
sbit led2 = P1^1;
char i, date, num;
/*串口初始化配置*/
void UartConfiguration()
{
TMOD=0x20; //设置计数器1的工作方式2
TH1=0xfd; //设置计数器1的初值,决定波特率
TL1=0xfd; //设置计数器1的初值,决定波特率
PCON=0x00; // 波特率倍增0x00不加倍 0x80加倍
SCON=0x50; //设置工作方式1 开启接受允许
EA=1; //开启总中断
ES=1; //开启串口接受中断
TR1=1; //计数器1开始运行
}
/*发送数据*/
void sendDate(char date)
{
SBUF=date; //接收到的数据放入发送缓存器发送
while(!TI); //等待发送数据完成
TI=0; //清除发送完成标志位
}
//发送字符串
void PostString(unsigned char *p)
{
while(*p) //若指针指向地址为空,则跳出循环
{
sendDate(*p); //指针第一次默认指向首地址
delay(20); //延时,提高发送准确度
p++;
}
}
void main()
{
UartConfiguration();
while(1)
{
if(num == 20)
{
num = 0;
sendDate('1'); //发送字符1
//比如发送DHT11的温湿度到手机上
//PostString("38.1");
}
}
}
/*中断函数*/
void Uart() interrupt 4
{
date=SBUF; //取出接受到的数据
RI=0; //清除接受中断标志位
//收到的数据是date
if (date==0x31){led1=0;}
if (date==0x08){led2=0;}
if (date==0x05){led1=1;led2=1;}
num++;
}
3、Android机打开蓝牙串口调试助手(文末提供下载地址,网上的都是广告,功能都用不到,看得心烦,然后自己敲了一个)
查看手机是否连接至HC-05了,然后通过发送代码中的特定指令,对LED灯的开关及HC-05向手机发送数据的测试
4、至此通过HC-05Android手机对单片机的控制就完成了,是不是很简单o(* ̄) ̄*)o
点击下载以上用到的工具
Android蓝牙串口调试助手
PC串口调试助手