一、串口通信:(STC89C51为例)
(7条消息) 51单片机——串口通信详解(STC89C51为例)_佛科院深夜学习的博客-CSDN博客/weixin_63568691/article/details/128274778
二、AT指令:
AT指令指在不连接蓝牙的条件下,通过串口发送,使蓝牙模块功能发生改变的指令
1、指令及对应功能
2、连接工具与链接方式
跟开发板与电脑进行串口通信相同的,需要一个USB转TTL模块,用相应接口的线将模块与电脑连接,模块按下图连接,注意TX和RX交叉连接,VCC接3.3V(如果你用其他蓝牙模块可能不一样,具体看数据手册上的工作电压)
3、使用前需要执行的指令:
不断改变波特率发送“AT“,直到收到OK,来确定模块的波特率和是否正常(一般默认位9600)发送”AT+DEFAULT“(加号也要发),进行模块重置(最快调回所有设置的方法)发送”AT+NAME=xxx“(xxx为你要填的名字),来改变蓝牙的名称,方便你选择需要连接的蓝牙三、手机利用蓝牙控制开发板上灯的亮灭
1、手机显示软件:
可在应用商店搜索BLE调试助手等工具
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.0592HHZTH1=0xFA;TL1=TH1;TR1=1;}void Serial_Init(){//方式1SM0=0;SM1=1;REN=1;}void Serial_Interrupt_Init(){ES=1;EA=1;}void Serial_Interrupt() interrupt 4{RI=0;a=SBUF;flag=1;}