基于STM32的无线蓝牙传输设计

2020-04-09 04:33张凯
物联网技术 2020年3期
关键词:无线传输C语言蓝牙

张凯

摘 要:項目以STM32单片机为基础,设计了一套无线传输系统。系统选用STM32F1系列单片机作为平台,利用其丰富的内部资源及外部设备,通过ST-Link仿真器进行在线调试,设计并开发应用功能,最终以HC-05蓝牙传输方式实现无线通信。实验表明,基于STM32的无线通信系统准确度高、延时小、操作方便,能够满足多种电子设备的无线功能需求。

关键词:无线传输;单片机;蓝牙;传感器;C语言;ST-Link

中图分类号:TP393;TM910 文献标识码:A 文章编号:2095-1302(2020)03-00-02

0 引 言

STM32F1系列单片机具有丰富的内部资源及外部设备,综合考虑性价比等因素,设计了一套基于STM32单片机的无线传输系统。

1 项目设计

系统整体结构如图1所示。项目设计围绕单片机展开,两个单片机分别连接无线发射器与接收器,当发射器发送信号时,接收器可在第一时间捕获信号并交由下位机处理,在红外探头检测到信号的同时,使用者也可通过按键中断的形式控制发射器发送信号。经HC-05蓝牙传输模块将信息传输到单片机,通过STM32将信息显示在触摸屏上。

2 热释电传感器的电路分析及设计

2.1 单片机

STM32是系统的核心,设计中应首先保障单片机的正常工作,再考虑系统功能的实现。STM32由电源、接地、复位以及时钟电路等组成,复位及时钟电路如图2所示。

单片机说明:

(1)接地端和电源端为STM32提供5 V工作电压;

(2)复位电路:在STM32F1系列单片机中,有软复位、按键复位及存储复位三种方式,本次设计采用按键复位方式;

(3)时钟电路:STM32F1系列单片机包含五个时钟信号,本设计中,信号采集采用外部高速时钟信号。

2.2 红外热释电传感器指示灯模块

红外热释电传感器将检测到的信号转换为电信号后传输到单片机中的P1.3口。3个不同的信号灯分别由P2.0~P2.2控制。红色灯表示无论以什么方式触发都会进行屏幕显示(手动按键触发或红外热释电触发),大黄灯表示红外探头检测范围内是否存在触发物(灯亮表示红外探头检测到信号;灯灭表示未检测到信号),小黄灯是系统指示灯,系统预置是按下复位按键后系统将进入预置状态,此状态下预置灯开始闪烁,20 s闪烁结束后系统进入信号采集状态,即灯灭后系统开始正常工作进行信号捕获,此时如果捕获到信号,无线发射器将发送一个触发信号,等待无线接收端接收后在屏幕上显示。红外热释电传感器指示灯原理如图3所示。

图中EA引脚输出高电平,当P2.0~P2.2的端口输出低电平时指示灯亮,三个指示灯分别有三个电阻,以防止电量过大导致灯灭。灯亮或灭的时间由内部软件程序控制。

3 HC-05蓝牙传输模块

HC-05蓝牙传输模块可用于短距离的交互通信,其结构简单、成本较低、操作性强,可广泛应用于无线通信领域。

引脚说明:

RXD:接收端;

TXD:发送端;

AT:设置工作模式(自动连接或命令回应);

VCC:模块供电正极(5 V);

GND:模块供电负极;

EN:使能端,需要进入AT模式(命令回应)时接

3.3 V电压。

引脚连接如图4所示。

按下模块开关,指示灯慢闪(1 s亮1次),进入AT模式。模块默认波特率为9 600,默认密码为1234,默认名称HC-05,AT+NAME=“XXXXX”(修改蓝牙名称),AT+PSWD=1234(蓝牙密码为1234)。

模块指示灯说明:

(1)模块上电,将KEY接高电平,此时指示灯慢闪

(1 s亮1次),模块进入AT状态,此时波特率固定为

38 400;

(2)模块上电后,将KEY悬空或接地,此时指示灯快闪

(1 s 2次),表示可进行配对操作;

(3)模块配对成功后,STA双闪(1次闪2下,2 s闪1次)。

若单片机烧写的波特率与蓝牙模块设置的波特率不同,则无法通信。

4 软件设计

软件部分采用C语言编写,一方面完成区域的红外检测,获取电信号并由无线发射器发出,同时以中断方式添加按键复位功能;另一方面,通过对STM32管脚、时钟、外设的配置,实现对触屏的有效控制并正确显示。主程序如下:

#include

#define uchar unsigned char

#define uint  unsigned int

sbit beep  = P2^3;

sbit red   = P2^2;

sbit green = P2^1;

sbit yellow = P2^0;

sbit hw    = P1^3;

bit flag_ms = 0;

uchar flag_alarm ;

uchar flag_bufang ;

uchar flag_bufang_en ;

uint  flag_value;

void main()

{

time_init();

beep = 0;

delay_ms(200);

P0 = P1 = P2 = P3 = 0xff;

while(1)

{

key();

yellow = ~hw;

if(key_can < 10)

{

key_with();

}

if(flag_ms == 1)

{

flag_ms = 0;

hongwai_dis();

}

}

}

5 结 语

本次设计将严格按照工程要求,制定完整的计划和标准,确保所用开发板正常工作,并在此基础上完成无线通信功能。无线通信的主要任务是通过无线发射器发送红外捕获的信号,在近距离范围内,无线接收器将接收的信号交由STM32处理并控制屏幕显示信息,实现信息的无线传输。

随着通信技术被广泛应用于国防、科研、生产等领域,对通信方式的要求也向无线、高效化方向发展,尤其在电子应用方面,无线传输有着更为重要的意义。

参 考 文 献

[1]俞海珍,冯浩.电磁兼容技术及其在PCB设计中的应用[J].电子机械工程,2004(2):1-3.

[2]刘洁.多模式开关电源控制器设计[D].西安:西安科技大学,2013.

[3]刘明雨.多级电压电流混合补偿的跟踪电源研究[D].哈尔滨:哈尔滨工业大学,2012.

[4]焦喜香,敬嵐,乔为民,等.基于CPLD和ATMEGAL128的数字电源系统的设计[J].核电子学与探测技术,2010(1):71-74.

[5]邵联合,黄桂梅.直流开关稳压电源的设计[J].轻工科技,2014

(3):42-43.

[6]邹建华.浅析通信电源维护与管理的问题[J].通讯世界,2015(9):52-53.

[7]郑英兰.低电压大电流开关电源的设计[J].仪表技术与传感器,2010(9):63-64.

[8]尹继武,付奎.基于STM32的生理参数无线监测系统设计[J].陕西理工大学学报(自然科学版),2019(5):16-20.

[9]吴敏.基于STM32的无线心电监测系统的设计[J].东莞理工学院学报,2018(1):41-44.

[10]艾红朝,漆为民.基于STM32的智能家居操控系统[J].中国科技信息,2018(3):85-87.

猜你喜欢
无线传输C语言蓝牙
蓝牙音箱的直线之美
基于Visual Studio Code的C语言程序设计实践教学探索
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
基于C语言的计算机软件编程
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
紧急:蓝牙指尖陀螺自燃!安全隐患频出
基于无线传输的LED灯远程控制系统设计
公路路面现场检测数据无线传输系统的设计
高职高专院校C语言程序设计教学改革探索
基于LABVIEW的温室管理系统的研究与设计