51单片机与HC-05蓝牙模块实现简单通讯
我也是刚刚实现单片机和蓝牙模块简单通讯,现在趁热打铁一步一步详细记载我是怎么实现得。废话不多说 冲!!!
知识储备:
首先实现他们之间的通讯只需要会串口通讯就行了。
基本原理:
就是手机给蓝牙发数据 蓝牙在通过TXD给单片机 单机用串口RXT到命令
如何接线
我所用的蓝牙模块是HC-05 一共有6个引脚 在我实现通讯只用了4引脚(RXD,TXD,GND,VCC)好的 这个蓝牙模块里面有两种模式,两种模式,两种模式,这两种模式的连接线是不一样的
- 蓝牙设置模式
第一种模式是蓝牙设置模式:简单的说就是给设置名字 密码 波特率等等
接线:VCC–VCC GND–GND RXD–单片机的RXD(P3.0) TXD–单片机的TXD(P3.1)。就完成了。
- 通讯模式
第二种模式就是通讯模式:简单的说就是我们手机给蓝牙发数据 这就是通讯模式
接线:VCC–VCC GND–GND RXD–单片机的TXD(P3.1) TXD–单片机的RXD(P3.0)。就是跟上面相反。
线连接完了我们就可以通讯的 没错 就这么简单
通讯之前 还得先了解蓝牙两种模式
蓝牙两种模式
第一种模式是蓝牙设置模式:
蓝牙设置模式
为了证明这个蓝牙有没有坏 我们就可以先进入设置模式
现在进入设置模式 就是:在连接蓝牙电源之前把蓝牙上面的黑色按钮按下 按下 按下,在连接电源 这是你会发现有个蓝色的灯是2秒钟闪一次 好的 那说明你已经成功了。
1.打开串口 2.勾选发送新行3.发送 AT 若返回ok 说明就很ok 若没有返回ok那恭喜你 中奖了 退货吧 前提是线要按照第一种连接方法。返回不是ok说明改下波特率就行
2.确认串行调试工具和蓝牙模块可以正常通信后,发送以下指令
AT+ROLE=0 (蓝牙模块设为从机,此时只可以被搜索)AT+CMODE=1 (蓝牙模块可以和任意设备连接)AT+UART=9600,0,0 (设置波特率9600)AT+NAME=HC05 (设置蓝牙的名字为HC05,手机蓝牙搜索时就找这个名字)AT+PSWD=1234 (设置密码,手机蓝牙串口APP连接蓝牙模块,需要输入密码)以上,蓝牙串口通通返回OK 。 断电,再上电,进入通讯模式 注意线要按照要按照第二种接法
第二种蓝牙通信模式
通信模式
进入蓝牙模式 灯会一秒钟闪两下 手机下载一个appSPP蓝牙串口。 打开软件连接蓝牙 连接成功 灯会变成连闪两下 好的现在可以通讯了。为了看出效果 写一些逻辑代码即可
代码模块
#include 《REGX52.H》unsigned char Value;//注意我这是11.0592MHz晶振 你们看看自己是多少兆的void UART_init() //9600bps@11.0592MHz{ PCON |= 0x80; //使能波特率加倍 SCON = 0x50; //8位数据 TMOD &= 0x0F; //清除定时器1模式 TMOD |= 0x20; //设定定时器8为自动 TL1 = 0xFA; //设定初始值 TH1 = 0xFA; //设定初始值 ET1 = 0; TR1 = 1; EA = 1; ES =1 ; }void main(){ Uart_Init() ; while(1) { if(Value==0x31) { P2_1=1; } }}void UART_Routine() interrupt 4{ if(RI==1) { P2_1=0; Value=SBUF; RI=0; } } 编译 下载程序即可 用实际发送任意为开灯 发送0x31是关灯 灯在P2_1口
51单片机与HC-05蓝牙模块实现简单通讯
我也是刚刚实现单片机和蓝牙模块简单通讯,现在趁热打铁一步一步详细记载我是怎么实现得。废话不多说 冲!!!
知识储备:
首先实现他们之间的通讯只需要会串口通讯就行了。
基本原理:
就是手机给蓝牙发数据 蓝牙在通过TXD给单片机 单机用串口RXT到命令
如何接线
我所用的蓝牙模块是HC-05 一共有6个引脚 在我实现通讯只用了4引脚(RXD,TXD,GND,VCC)好的 这个蓝牙模块里面有两种模式,两种模式,两种模式,这两种模式的连接线是不一样的
- 蓝牙设置模式
第一种模式是蓝牙设置模式:简单的说就是给设置名字 密码 波特率等等
接线:VCC–VCC GND–GND RXD–单片机的RXD(P3.0) TXD–单片机的TXD(P3.1)。就完成了。
- 通讯模式
第二种模式就是通讯模式:简单的说就是我们手机给蓝牙发数据 这就是通讯模式
接线:VCC–VCC GND–GND RXD–单片机的TXD(P3.1) TXD–单片机的RXD(P3.0)。就是跟上面相反。
线连接完了我们就可以通讯的 没错 就这么简单
通讯之前 还得先了解蓝牙两种模式
蓝牙两种模式
第一种模式是蓝牙设置模式:
蓝牙设置模式
为了证明这个蓝牙有没有坏 我们就可以先进入设置模式
现在进入设置模式 就是:在连接蓝牙电源之前把蓝牙上面的黑色按钮按下 按下 按下,在连接电源 这是你会发现有个蓝色的灯是2秒钟闪一次 好的 那说明你已经成功了。
1.打开串口 2.勾选发送新行3.发送 AT 若返回ok 说明就很ok 若没有返回ok那恭喜你 中奖了 退货吧 前提是线要按照第一种连接方法。返回不是ok说明改下波特率就行
2.确认串行调试工具和蓝牙模块可以正常通信后,发送以下指令
AT+ROLE=0 (蓝牙模块设为从机,此时只可以被搜索)AT+CMODE=1 (蓝牙模块可以和任意设备连接)AT+UART=9600,0,0 (设置波特率9600)AT+NAME=HC05 (设置蓝牙的名字为HC05,手机蓝牙搜索时就找这个名字)AT+PSWD=1234 (设置密码,手机蓝牙串口APP连接蓝牙模块,需要输入密码)以上,蓝牙串口通通返回OK 。 断电,再上电,进入通讯模式 注意线要按照要按照第二种接法
第二种蓝牙通信模式
通信模式
进入蓝牙模式 灯会一秒钟闪两下 手机下载一个appSPP蓝牙串口。 打开软件连接蓝牙 连接成功 灯会变成连闪两下 好的现在可以通讯了。为了看出效果 写一些逻辑代码即可
代码模块
#include 《REGX52.H》unsigned char Value;//注意我这是11.0592MHz晶振 你们看看自己是多少兆的void UART_init() //9600bps@11.0592MHz{ PCON |= 0x80; //使能波特率加倍 SCON = 0x50; //8位数据 TMOD &= 0x0F; //清除定时器1模式 TMOD |= 0x20; //设定定时器8为自动 TL1 = 0xFA; //设定初始值 TH1 = 0xFA; //设定初始值 ET1 = 0; TR1 = 1; EA = 1; ES =1 ; }void main(){ Uart_Init() ; while(1) { if(Value==0x31) { P2_1=1; } }}void UART_Routine() interrupt 4{ if(RI==1) { P2_1=0; Value=SBUF; RI=0; } } 编译 下载程序即可 用实际发送任意为开灯 发送0x31是关灯 灯在P2_1口
举报