一、串口通信 :(STC89C51为例)
(7条消息) 51单片机——串口通信详解(STC89C51为例)_佛科院深夜学习的博客-CSDN博客https://blog.csdn.net/weixin_63568691/article/details/128274778
二、AT指令:
AT指令指在不连接蓝牙的条件下,通过串口发送,使蓝牙模块功能发生改变的指令
1、指令及对应功能
2、 连接工具与链接方式
跟开发板与电脑进行串口通信相同的,需要一个USB转TTL模块,用相应接口的线将模块与电脑连接,模块按下图连接,注意TX和RX交叉连接,VCC接3.3V(如果你用其他蓝牙模块可能不一样,具体看数据手册上的工作电压)
文章来源:https://www.toymoban.com/news/detail-432226.html
3、使用前需要执行的指令:
- 不断改变波特率发送“AT“,直到收到OK,来确定模块的波特率和是否正常(一般默认位9600)
- 发送”AT+DEFAULT“(加号也要发),进行模块重置(最快调回所有设置的方法)
- 发送”AT+NAME=xxx“(xxx为你要填的名字),来改变蓝牙的名称,方便你选择需要连接的蓝牙
三、手机利用蓝牙控制开发板上灯的亮灭
1、手机显示软件:
可在应用商店搜索BLE调试助手等工具文章来源地址https://www.toymoban.com/news/detail-432226.html
2、参考代码:(具体解析参考串口通信一文)
#include <reg52.h>
#define u8 unsigned char
#define u16 unsigned int
sbit led = P2^0;
u8 table1[]="LED ON";
u8 table2[]="LED OFF";
u8 a,flag;
void Tim1_Init();
void Serial_Init();
void Serial_Interrupt_Init();
void delay10us(u16 time_out);
//如果收到1,灯亮;如果收到0,灯灭
void main()
{
u8 i;
Tim1_Init();
Serial_Init();
Serial_Interrupt_Init();
while(1)
{
if(flag==1)
{
if(a==1)
{
led=0;
for(i=0;i<6;i++)
{
SBUF=table1[i];
while(!TI);
TI=0;
}
flag=0;
delay10us(100);
}
else if(a==0)
{
led=1;
for(i=0;i<7;i++)
{
SBUF=table2[i];
while(!TI);
TI=0;
}
flag=0;
delay10us(100);
}
}
}
}
void delay10us(u16 time_out)
{
u8 i;
while(time_out--)
{
i=85;
while(i--);
}
}
void Tim1_Init()
{
TMOD=0x20;
//加倍
PCON=0X80;
//波特率为9600 11.0592HHZ
TH1=0xFA;
TL1=TH1;
TR1=1;
}
void Serial_Init()
{
//方式1
SM0=0;
SM1=1;
REN=1;
}
void Serial_Interrupt_Init()
{
ES=1;
EA=1;
}
void Serial_Interrupt() interrupt 4
{
RI=0;
a=SBUF;
flag=1;
}
到了这里,关于串口通信——蓝牙模块使用(HC-08为例)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!