成长中的小白又来发博客了,这次带来的分享是结合我前两篇『串行口通信』和『初学者模式下的12864液晶(一)』的技术博客综合起来再加今天的蓝牙模块的应用,今天稍微讲讲蓝牙基本的操作和基本接法,重点是几个方面的结合,还是那句话 大神勿喷
在学习使用某个模块之前得必须使用其数据手册,接下来我们讲讲其手册的一些重要数据。
</br>

模块特点
蓝牙 2.0 带 EDR (最高传输数率可达2.1M)
内置 2.4GHz PCB射频天线
外置 8Mbit FLASH
支持主从一体
传输距离超过20米(空旷情况下,实际可达40米以上)
支持软件控制主从模块(主从切换)
模块可以作为 SMD 贴片工艺
存储温度:-40 至+85 度,工作温度:-25 至+75 度
灵 敏 度:灵敏度(误码率)达到 -80dBm
协波干扰:2.4MHz,发射功率 3 dBm
功 耗:配对时 30~40MA 波动,配对完毕通信 8MA
供电电源:低电压 3.3V 工作(3.1V~4.2V)
外观尺寸: 27mm×13mm×2mm
通过REACH、ROHS认证
模块电路图

还有一点就是学会看其指令和使用其指令来配置蓝牙模块,那么如何进行配置呢?,我们通过模块与电脑USB端口连接,下载一个串口助手,打开串口助手,打开串口连接,然后我们在发送框中发送指令,如AT+VERSION?,然后勾选自动发送,然后我们按蓝牙上的KEY键进入配置模式,此时我们就能看到其返回的信息了,以此来推,想要如何设置,就照指令手册来设置就好了,但是最好用默认模式,因为手册里的介绍都是以默认模式来进行的。
</br>
接下来我们把蓝牙模块与单片机相连,如下图

最后剩下的就用代码来解决了,它的代码其实就一个串行口通信就能实现蓝牙数据与单片机数据的传输了,我们通过手机端的串口助手向单片机发送数据就能显示在液晶屏上。
void init()
{
TMOD = 0x20;//确定T1工作方式 自动重载8位定时器,收TR1控制
TH1 = 0xFD;//装初值
TL1 = 0xFD;
TR1 = 1;//开启定时器
REN = 1;//允许串行口接受
SM0 = 0;//方式1
SM1 = 1;
EA = 1;//中断总开关开
ES = 1;//串行口中断打开
}
void sen_char(uchar value)
{
ES=0;
SBUF =value; //把接收到的缓存在value中的给SBUF发送
while(!TI);
TI=0;
ES=1;
}
void sen_str(uchar *str)
{
ES = 0; //串行口中断关闭
while((*str)!='\0')
{
sen_char(*str); //SBUF发送寄存器
while(!TI); //发送
TI = 0; //发送中断标志位清0
str++;
}
}
void ser() interrupt 4
{
unsigned int j;
// i=0;
i++;
RI = 0; //软件清0
get_usart=SBUF; //读取SBUF中数据存于a
//lcm_clr();
lcd_pos(2, i);
write_data(get_usart);
}
结合上一篇『初学者模式下的12864液晶(一)』写一个简单的主函数之类的就能实现数据在液晶显示屏的显示了。