当前位置:网站首页>51与蓝牙模块通讯,51驱动蓝牙APP点灯
51与蓝牙模块通讯,51驱动蓝牙APP点灯
2022-07-07 22:17:00 【优信电子】
蓝牙模块简介
本次实验用到是JDY31蓝牙模块,JDY-31 蓝牙基于蓝牙 3.0 SPP 设计,
蓝牙模块是串口通讯,单片机也有串口通讯,我们只需要配置好既可以实现单片机于蓝牙通讯,甚至是实现更多的功能,本文对刚学习51需要制作蓝牙小车的帮助很大
串口配置
STC89C52的UART有四种工作模式:
模式0:同步移位寄存器
模式1:8位UART,波特率可变(常用)
模式2:9位UART,波特率固定
模式3:9位UART,波特率可变
本次实验配置的是模式1; 8位自动重装
具体的程序的程序配置可以借助STC官方的下载器,下载器自带一个波特率计算器,按下面的图配置生成复制代码就行
蓝牙模块默认波特率是9600,所以这里要选择4800倍速
主要代码
串口初始化代码:89C52单片机没有AUXR,可以去掉这两句程序,再打开EA和ES中断
/** * @brief 串口初始化[email protected] * @param 无 * @retval 无 */
void UART_Init()
{
SCON=0x50; //8位数据,可变波特率
PCON |=0x80; //使能波特率倍速位SMOD
TMOD &= 0x0F; //设置定时器模式
TMOD |= 0x20; //设置定时器模式
TL1 = 0xFA; //设置定时初始值
TH1 = 0xFA; //设置定时重载值
ET1 = 0; //禁止定时器%d中断
TR1 = 1; //定时器1开始计时
EA=1; //开启总中断
ES=1; //开启串口中断
}
串口发送数据:SBUF是串口数据缓冲寄存器,
**
* @brief 串口发送一个字节数据
* @param Byte 要发送一个字节数据
* @retval 无
*/
void UART_SendByte(unsigned char Byte)
{
SBUF=Byte;
while(TI==0);
TI=0;
}
主要代码
void main ()
{
UART_Init(); //串口初始化
while(1)
{
}
}
void UART_Routine() interrupt 4 //串口中断号
{
if(RI==1)
{
P1=SBUF; //接收数据控制P1
RI=0; //串口接收寄存器置零
}
}
实验接线
单片机下载的时候不要连接蓝牙,要先下载程序再连接,否则下载会失败
单片机 | 蓝牙模块 |
---|---|
5V | VCC |
P3.0 | TX |
P3.1 | RX |
GND | GND |
手机APP配置
1,在手机商店下载SPP蓝牙串口,本蓝牙模块苹果手机不可用,
2,点开APP右上角连接对应的蓝牙
3,在开关这个地方自定义一个按钮,配置如下图:
配置好之后即可开始操作
实验现象
总结
蓝牙传输的数据存在SBUF寄存器中,对接收到的数据进行处理就可以进行各种操作控制,本文相当于一个串口通讯模板,需要完整工程的可以下方留言
边栏推荐
- Traduction gratuite en un clic de plus de 300 pages de documents PDF
- Relevant methods of sorting arrays in JS (if you want to understand arrays, it's enough to read this article)
- Basic learning of SQL Server -- creating databases and tables with code
- The difference between get and post
- Introduction to programming hardware
- Common selectors are
- Robomaster visual tutorial (0) Introduction
- SQL knowledge summary 004: Postgres terminal command summary
- Connect diodes in series to improve voltage withstand
- Data analysis series 3 σ Rule / eliminate outliers according to laida criterion
猜你喜欢
[programming problem] [scratch Level 2] December 2019 flying birds
ROS from entry to mastery (IX) initial experience of visual simulation: turtlebot3
52岁的周鸿祎,还年轻吗?
Problems faced when connecting to sqlserver after downloading (I)
QT creator add JSON based Wizard
【编程题】【Scratch二级】2019.12 飞翔的小鸟
Notice on organizing the second round of the Southwest Division (Sichuan) of the 2021-2022 National Youth electronic information intelligent innovation competition
[the most detailed in history] statistical description of overdue days in credit
Go learning notes (1) environment installation and hello world
SQL knowledge summary 004: Postgres terminal command summary
随机推荐
The function is really powerful!
Go learning notes (2) basic types and statements (1)
3年经验,面试测试岗20K都拿不到了吗?这么坑?
Reading notes 004: Wang Yangming's quotations
Connect diodes in series to improve voltage withstand
Postgres timestamp to human eye time string or millisecond value
webflux - webclient Connect reset by peer Error
Database query - what is the highest data?
Handwriting a simulated reentrantlock
Two small problems in creating user registration interface
Zhou Hongqi, 52 ans, est - il encore jeune?
Traduction gratuite en un clic de plus de 300 pages de documents PDF
Development of a horse tourism website (optimization of servlet)
How to put recyclerview in nestedscrollview- How to put RecyclerView inside NestedScrollView?
“一个优秀程序员可抵五个普通程序员”,差距就在这7个关键点
LinkedBlockingQueue源码分析-新增和删除
单机高并发模型设计
When creating body middleware, express Is there any difference between setting extended to true and false in urlencoded?
How does starfish OS enable the value of SFO in the fourth phase of SFO destruction?
2022-07-07:原本数组中都是大于0、小于等于k的数字,是一个单调不减的数组, 其中可能有相等的数字,总体趋势是递增的。 但是其中有些位置的数被替换成了0,我们需要求出所有的把0替换的方案数量: