51单片机使用和配置HC-05蓝牙模块

2020-08-22 19:13发布

需要的工具: usb转ttl模块*1

模块如下:

        要想使用HC-05蓝牙模块进行单片机之间通讯或者单片机和蓝牙设备之间通讯,首先要配置好HC-05蓝牙模块的参数。设置好蓝牙的名称、密码、波特率等待。

step1:

        连接usb转ttl模块和蓝牙模块,把两个模块的VCC口相连,GND口相连,TX和RX交叉相连(既TX连RX,RX连TX)。 然后下载蓝牙串口配置软件进行配置:

提取码:6d32

软件界面如下:

step2:

        连接好两个模块之后,按住蓝牙模块上的小按钮(按住上电是配置模式,直接上电是正常使用模式),然后把usb转ttl模块插上电脑。 选择好端口设置上的COM口,其它配置默认不需要改,点击打开串口。如果硬件连接和端口设置没问题的话这时候就可以连接成功了。 之后点击AT按钮,如果左边界面出现OK字样就证明已经连接成功了,然后就开始根据需求进行配置手机连接51单片机+蓝牙:

  1. 点击设置从机。
  2. 点击设置模式,在右上角改1为0然后点击手动发送。
  3. 点击设置波特率,PS:这里设置的波特率和刚刚端口设置中的波特率是不一样的,这个是正常模式下蓝牙和单片机通讯的波特率,端口设置中的波特率是配置模式下的波特率,修改这里的波特率不是改变配置模式的波特率,下次配置蓝牙模块的端口设置中的波特率还是保持默认。波特率要和单片机的波特率设置为一样,通常51单片机的程序都是用9600,这里默认9600。
  4. 设置密码,看个人喜好。
  5. 设置名称,看个人喜好。

如果以上设置中出现什么问题的话,点击恢复出厂设置

重新设置一边。如果没问题的话就可以开始把蓝牙换到单片机上进行使用了。  

step3:

        吧蓝牙和单片机串口进行连接,蓝牙和单片机的连接和上面的一样,注意TX和RX之间要交叉连接。         只要连接好蓝牙,烧录好单片机程序,蓝牙就会把单片机串口发送来的数据向已经连接上的蓝牙设备进行发送。 51单片机的demo:

/*串口初始化配置*/ 
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 main() 
{ UartConfiguration(); 
sendDate('1'); //发送字符1 
while(1);
 } 
/*中断函数*/ 
void Uart() interrupt 4 
{ uchar date; 
date=SBUF; //取出接受到的数据 
RI=0;	//清除接受中断标志位 
//收到的数据是date 
}

这是51单片机向串口发送数据的例程,其中

while(!TI)

是等待消息发送成功,如果发送不成功的话会一直等待阻塞程序。         而且51单片机的串口中断是一个字节一个字节地接收数据的,比如手机向单片机发送了数据“123”,单片机中的中断函数Uart()会进入三次,把数据“123”分三次接收完,一次接收一个字符,所以要在其中添加自己的逻辑把单个字符组合成一个字符串来进行处理。