我也是刚刚实现单片机和蓝牙模块简单通讯,现在趁热打铁一步一步详细记载我是怎么实现得。废话不多说 冲!!!
知识储备:
首先实现他们之间的通讯只需要会串口通讯就行了。
基本原理:
就是手机给蓝牙发数据 蓝牙在通过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秒钟闪一次 好的 那说明你已经成功了。在需要串口调试工具提取码:xici
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
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口
第一次发表,经验不足,还望多多包涵,之后学习其他的一些模块也会慢慢更新,希望得到大家的支持!!!!!!你们的支持是我最大的动力!!!!!
我也是刚刚实现单片机和蓝牙模块简单通讯,现在趁热打铁一步一步详细记载我是怎么实现得。废话不多说 冲!!!
知识储备:
首先实现他们之间的通讯只需要会串口通讯就行了。
基本原理:
就是手机给蓝牙发数据 蓝牙在通过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秒钟闪一次 好的 那说明你已经成功了。在需要串口调试工具提取码:xici
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
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口
第一次发表,经验不足,还望多多包涵,之后学习其他的一些模块也会慢慢更新,希望得到大家的支持!!!!!!你们的支持是我最大的动力!!!!!
举报