蓝牙模块
蓝牙转串口(TTL)模块,蓝牙转串口,不需要知道蓝牙协议,只需要知道串口协议就好。我所用的是BT06,只能做从机,蓝牙接收数据。
BT06蓝牙模块是专为智能无线数据传输而打造,遵循V3.0 蓝牙规范。
本模块支持UART接口,并支持SPP蓝牙串口协议,具有成本低、体积小、功耗低、收发灵敏性高等优点,只需配备少许的外围元件就能实现其强大功能。
接线图
可以USB-TTL模块直接与蓝牙模块相连,但要注意 5V-5V,GND-GND,RXD-TXD,TXD-RXD。
也可以直接用开发板进行蓝牙设置,但注意不要插单片机,否则数据会冲突,因为单片机进行烧录也是用的RX,TX。
状态指示LED:
LED显示 | 模块状态 |
---|---|
长亮 | 建立连接 |
均匀慢速闪烁 | 等待配对 |
AT指令集
在进行蓝牙与电脑连接上之后,打开串口助手(或者STC下载器自带的)打开串口可以进行AT指令设置,设置它的密码,名称以及波特率等
用户可以通过串口和 BT06蓝牙进行通信,串口使用 Tx, Rx 两根信号线,波特 率 支 持
1200,2400,4800,9600,14400,19200,38400,57600,115200,230400,460800 和921600bps。串口缺省波特率为
9600bps。
(注:发 AT 指令时必须回车换行, AT 指令只能在模块未连接状态下才能生效,一旦蓝牙模块与设备连接上,蓝牙模块即进入数据透传模式。\r\n为直接按电脑回车键,如不能按回车键则加\r\n。AT指令不分大小写)
应用链接
一般默认名称是BT-04,默认密码为1234,手机打开蓝牙,在手机app端控制蓝牙发送数据。
单片机程序
使用蓝牙时接受的数据由串口进行通讯传给MCU,所以使用串口中断。
参考程序:
#include <reg52.h>
#define uchar unsigned char
void UART_INIT()
{
SM0 = 0;
SM1 = 1;//串口工作方式1
REN = 1;//允许串口接收
EA = 1;//开总中断
ES = 1;//开串口中断
TMOD = 0x20;//8位自动重装模式
TH1 = 0xfd;
TL1 = 0xfd;//9600波特率
TR1 = 1;//启动定时器1
}
//串口中断
void UART_SER() interrupt 4
{
if(RI)
{
RI = 0;//清除接收标志
switch(SBUF)
{
case 0x01:/*执行*/ ; break;//蓝牙接收1事进行的操作
}
}
}
void main()
{
UART_INIT();//串口初始化
while(1)
{
}
}