把蓝牙连接到USB转ttl上面,注意RXD和TXD连接要相反
使用串口助手 波特率默认为9600
使用串口助手 波特率默认为9600
01常用的AT指令
1.测试通讯
发送:AT
返回:OK
2.改蓝牙串口通讯波特率(这个改过之后必须要马上调整串口助手中的波特率!)
发送:AT+BAUD1
返回:OK1200
发送:AT+BAUD2
返回:OK2400
1----1200
2----2400
3----4800
4----9600
5----19200
......(反正就是数字+1,波特率*2)
8----115200
......
C----1382400
我们就用默认的9600吧,这个和之后串口收发的代码也有关系,就不调整啦
3.改蓝牙名称(name可改为你给蓝牙取的名字)
发送:AT+NAMEname
返回:OKname
4.改蓝牙配对密码
发送:AT+PINxxxx(正确格式AT+PIN9909)
注意密码为4位
返回:OKsetPIN
02实际代码
#include "reg51.h"
typedef unsigned int u16; //对数据类型进行声明定义
typedef unsigned char u8;
//蓝牙模块的初始化
void Bluetoothinit(){
TMOD = 0x20;//确定T1工作方式 自动重载8位定时器,收TR1控制
TH1 = 0xE6;//装初值(这里不同波特率数值也不同)
TL1 = 0xE6;
TR1 = 1;//开启定时器
REN = 1;//允许串行口接受
SM0 = 0;//方式1
SM1 = 1;
ES = 1;//串行口中断打开
EA=1;//打开总中断
}
void main(){
Bluetoothinit();
while(1){
}
}
//串口中断函数
void ser() interrupt 4
{
u8 date1=SBUF;//这里接受到了数据
RI = 0; //软件清0,说明自己接受到了数据,让对方等待接受
SBUF=date1;//发送数据
while(!TI);//发送成功后TI会变成1
TI=0;//继续清零等待发送
}
03经验总结
1.晶振最好用11.0592的。如果用了12的话那么波特率就会有误差会产生乱码现象,解决办法:把蓝牙模块的波特率改到最小,以减少误差。
2.在发送数据时,那个加号是要写到AT指令里的
2.在发送数据时,那个加号是要写到AT指令里的