STM32单片机对红外接收系统的设计
基于STM32的智能家居红外控制系统研究与设计共3篇

基于STM32的智能家居红外控制系统研究与设计共3篇基于STM32的智能家居红外控制系统研究与设计1智能家居系统在当今社会已经得到了广泛的应用,而红外控制技术也是其中的重要一环。
本文将对基于STM32的智能家居红外控制系统进行研究与设计,主要包括系统设计方案、硬件设计、软件设计等方面的内容。
一、系统设计方案系统的整体设计方案如下:1、硬件系统设计(1)基于STM32微控制器的控制板设计。
(2)通过红外传感器采集红外信号。
(3)通过继电器实现对家居电器的远程遥控。
2、软件系统设计(1)通过编写C语言程序,实现红外信号采集、远程遥控等功能。
(2)通过TCP/IP协议实现智能家居控制,并实现移动端APP对智能家居的远程控制。
二、硬件设计基于STM32F407VG微控制器,我们设计了控制板。
控制板的主要功能是通过GPIO口采集红外信号,并实现对家居电器的远程控制。
同时,设计一组2路继电器可实现对两路不同设备的控制。
此外,我们在控制板中加入了W5500以太网模块,以实现智能家居系统的远程控制。
它支持TCP/IP协议,可将设备与云端进行通信。
三、软件设计在软件方面,我们采用Keil软件开发环境,通过编写C语言程序实现各项功能。
红外信号采集:通过GPIO口的中断方式方便地实现对红外信号的采集。
远程控制:通过电路板上的两个继电器实现对家庭电器的控制。
使用TCP/IP协议实现控制面板与PC、手机等设备的远程控制通信。
移动端APP设计:手机APP通过连接TCP/IP协议,实现对家居设备的遥控。
APP采用Android平台进行开发,具有简单、易操作、界面友好等特点。
四、系统实现效果对系统进行实际测试,能够实现对家庭电器的控制。
在APP上,用户可以实时查看设备状态,并可对设备进行控制。
本系统能实现智能家居的简易、实用、高效的控制,满足用户的基本需求。
综上所述,本文对基于STM32的智能家居红外控制系统进行了研究与设计,详细分析了硬件系统和软件系统的设计,通过实际测试验证了系统的实现效果,证明本系统能够实现对家庭电器的控制,而且使用方便,界面友好,具有很高的实用价值。
单片机STM32F103C8T6的红外遥控器解码系统设计

单片机STM32F103C8T6的红外遥控器解码系统设计一、本文概述本文旨在详细阐述基于STM32F103C8T6单片机的红外遥控器解码系统的设计和实现过程。
随着科技的不断进步和智能化设备的普及,红外遥控器作为一种常见的遥控设备,已经广泛应用于家电、安防、玩具等多个领域。
然而,红外遥控器发出的红外信号往往需要通过解码器才能被设备正确识别和执行,因此,设计一款高效、稳定、可靠的红外遥控器解码系统具有重要意义。
本文将首先介绍红外遥控器的基本原理和信号特点,然后详细阐述STM32F103C8T6单片机的性能特点和在红外遥控器解码系统中的应用优势。
接着,将详细介绍红外遥控器解码系统的硬件设计,包括红外接收头的选择、电路设计和PCB制作等。
在软件设计部分,将详细阐述如何通过STM32F103C8T6单片机的编程实现红外信号的接收、解码和处理,以及如何将解码后的数据通过串口或其他通信方式发送给主控制器。
本文还将对红外遥控器解码系统的性能进行测试和分析,包括信号接收距离、解码速度和稳定性等方面的测试。
将总结本文的主要工作和创新点,并对未来的研究方向进行展望。
通过本文的研究和实现,旨在为红外遥控器解码系统的设计提供一种新的思路和方法,同时也为相关领域的研究人员提供有益的参考和借鉴。
二、红外遥控器基础知识红外遥控器是一种常见的无线遥控设备,它利用红外光作为信息载体,通过发射和接收红外光信号实现对设备的远程控制。
这种遥控方式因其简单、低成本和无需视线连接等优点,在各类消费电子产品中得到了广泛应用,如电视机、空调、音响等。
红外遥控器的工作原理主要基于红外辐射和光电器件的检测。
遥控器内部通常包含一个或多个红外发射管,当按下按键时,发射管会发射出特定频率和编码的红外光信号。
接收端则配备有红外接收头,该接收头内部有一个光敏元件(如硅光敏三极管或光敏二极管),用于检测红外光信号并将其转换为电信号。
为了区分不同的按键操作,红外遥控器通常采用特定的编码方式对按键信号进行编码。
STM32单片机红外遥控

STM32单片机红外遥控红外遥控接口电路STM32单片机红外遥控程序源代码#include "sys.h"#define LED_RED PBout(12) //红色发光二极管控制管脚初始化PB12 #define LED_GREEN PBout(13) //绿色发光二极管控制管脚初始化PB13 #define LED_YELLOW PBout(14) //黄色发光二极管控制管脚初始化PB14 #define LED_BLUE PBout(15) //蓝色发光二极管控制管脚初始化PB15 #define BEEP PBout(5) //蜂鸣器端口定义PB5#define RDATA PAin(1) //红外数据输入脚//红外遥控识别码(ID),每款遥控器的该值基本都不一样,但也有一样的//我们选用的遥控器识别码为0#define REMOTE_ID 0static u8 fac_us=0; //us延时倍乘数static u16 fac_ms=0; //ms延时倍乘数void delay_init(u8 SYSCLK);void delay_ms(u16 nms);void delay_us(u32 nus);void Led_Init(void); //发光二极管控制管脚初始化void Red_Led_Light(void); //点亮红色发光二极管void Green_Led_Light(void); //点亮绿色发光二极管void Yellow_Led_Light(void); //点亮黄色发光二极管void Blue_Led_Light(void); //点亮蓝色发光二极管void Red_Led_Goout(void); //熄灭红色发光二极管void Green_Led_Goout(void); //熄灭绿色发光二极管void Yellow_Led_Goout(void); //熄灭黄色发光二极管void Blue_Led_Goout(void); //熄灭蓝色发光二极管void Beep_Init(void);void Beep_Tweet(void);void Beep_Silent(void);extern u8 Remote_Cnt; //按键次数,此次按下键的次数extern u8 Remote_Rdy; //红外接收到数据extern u32 Remote_Odr; //命令暂存处u32 Remote_Odr=0; //命令暂存处u8 Remote_Cnt=0; //按键次数,此次按下键的次数u8 Remote_Rdy=0; //红外接收到数据void Remote_Init(void); //红外传感器接收头引脚初始化u8 Remote_Process(void); //红外接收到数据处理u8 Pulse_Width_Check(void); //检查脉宽extern u8 USART_RX_BUF[64]; //接收缓冲,最大63个字节.末字节为换行符extern u8 USART_RX_STA; //接收状态标记//如果想串口中断接收,请不要注释以下宏定义//#define EN_USART1_RX //使能串口1接收void uart_init(u32 pclk2,u32 bound);/*************************************************************开发板上电后,用红外遥控器对着开发板上的红外接收头。
基于STM32的智能家居红外控制系统研究与设计

基于STM32的智能家居红外控制系统研究与设计基于STM32的智能家居红外控制系统研究与设计智能家居系统已经成为人们生活中不可或缺的一部分。
随着科技的发展,越来越多的设备和家居设施可以通过智能控制实现自动化操作,为人们的生活带来更多的便利和舒适。
红外控制技术作为智能家居的一个重要组成部分,在家电遥控、安防监控、照明控制等方面有着广泛的应用。
本文将重点介绍一种采用STM32微控制器的智能家居红外控制系统的研究与设计。
该系统以红外控制为基础,通过智能算法和网络通信实现对家居设备的远程控制和监控。
首先,我们介绍STM32微控制器。
STM32是意法半导体公司推出的一系列基于ARM Cortex-M内核的微控制器产品,具有性能高、功耗低、易于开发等特点。
它具备丰富的外设资源和强大的处理能力,非常适合用于智能家居系统的设计。
基于STM32的智能家居红外控制系统主要包括硬件设计和软件设计两部分。
在硬件设计方面,系统通过红外收发模块实现与家电设备的红外通信。
同时,通过传感器模块采集环境数据,如温度、湿度、光照等信息,以实现对室内环境的感知和控制。
此外,为了实现远程控制和监控,系统还需要集成网络通信模块,如Wi-Fi或以太网模块,用于与用户手机或电脑进行数据交互。
在软件设计方面,系统主要包括红外通信协议解析、数据处理和网络通信等功能。
首先,红外通信协议解析模块负责解析红外遥控信号,将其转换为控制指令。
然后,数据处理模块根据用户的控制指令对家居设备进行相应操作。
最后,网络通信模块将室内环境数据和设备状态等信息发送到用户的手机或电脑上,实现远程监控和控制。
智能算法是该系统的关键技术之一。
通过分析室内环境数据和用户的使用习惯,系统可以学习并优化设备的控制策略,提高用户体验和设备能效。
比如,根据室内温度和湿度的变化,系统可以自动调整空调的运行模式,实现温湿度的舒适控制。
另外,系统也可以根据用户的作息时间和习惯,自动调节灯光亮度和色温,提供个性化的照明服务。
基于STM32的红外光通信系统设计

2 0 1 2 ( 1 0 ) : 7 4 - 7 7 .
在消 费需求, 获取 、 分析客 户信. g - 数据 , 做 到与合作伙伴 协 同 开展 定 向 营销 并 向客 户推 荐 合 作 伙 伴 的 更 多 业 务 。
( 3) : 7 ~l 1 .
行 为入 手 , 针 对受众群体制定新 式的营销模 式 , 研究、 剖 析 客 户的 个 体 特 征 、 社 交 网络 和 群 体特 征 。 收 稿 日期 : 2 0 1 7 — 2 — 1 0
4 结束语
本 文 介 绍 了大 数 据 的 基 本 内涵 及 当前 的应 用现 状 . 分析
生, 成 为 引领 社 会 发 展 的 新 高潮 。 因 此 , 基于“ 互联网+ ” 理 论 的推 广 实 践 期 , 笔 者 对 其 理 念 下 网 路安 全 问题 的新 挑 战 进 行 研 究 , 并 试 图 找 出 有 效
解决策略。
【 关键词 】 互联 网+ ; 网路 ; 安全性 【 中图分类号 】 F 7 2 4 . 6 【 文献标识码 】 A
次, 为使 达 到 针 对 用 户 、 业务部 门、 合 作 伙 伴 的 不 同 需 求提 供
有针对性 、 行 之 有 效 的服 务 , 可 通 过 访 问客 户 端 、 拨打客服 电
话 和 访 问网 页 这 三种 渠道 , 根 据 用 户行 为 分析 、 挖 掘 客 户 的 潜
参 考 文 献
1 互联 网+ 理念下带给 网路安全新挑战
1 . 1 个 人信 息安 全
1 . 2 企 业机 密威 胁
基于STM32的红外报警系统的设计实现部分介绍

基于STM32的红外报警系统的设计实现部分介绍硬件设计3.1 STM32单片机控制模块设计中主控芯片采用STM32F103C8T6单片机作为主控制。
该型号单片机为LQFP44封装,内部资源足够用于本次设计。
STM32F103系列芯片最高工作频率可达72MHZ,在存储器的01等等待周期仿真时可达到1.25Mip/MHZ(Dhrystone2.1)。
内部128k字节的闪存程序存储器,也就是说代码量可以写到128k字节,本次设计足够,内部高达20K字节的SRAM。
STM32F103C8T6芯片工作电压在2.0V-3.6V,最佳工作电压在3.3V。
芯片具有上电/断电复位(POR/PDR)、可编程电压检测器。
芯片可以外接4~16MHZ外部晶体振荡器,且可分频最高可达72MHZ。
内部有经过出厂调校的40KHZRC 晶体振荡器,可以产生CPU时钟的PLL;带有校准功能的32khz的RTC振荡器。
具有低功耗模式,可在睡眠、停机和待机模式。
STM32F103系列具有2个12位模数转换器,1us转换时间,多达16个输入通道。
转换范围0-3.6V,转换通道还包含一个内部温度传感器,可以用来测量STM32内部温度。
其片上具有定时器、ADC、SPI、IIC、USART功能。
STM32F103C8T6具有37个I/O,所以的I/O都可以映射到16个外部中断;除了A/D引脚外,几乎所以的I/O都可以接受5V的信号。
该芯片的调试模式可用串行单片机调试(SWD)和JTAG 接口。
3个16位定时器,每个定时器有多达4个用于输入捕获/输出比较PWM或脉冲计数的通道和增量编码器输入。
1个16位带死区控制和紧急刹车,用于电机控制的PWM高级控制定时器;2个看门狗定时器(独立的和窗口型的)。
系统时间定时器:24位自减型计数器。
如下图3-4TM32F103C8T6 管脚图如图3.1所示。
图3.1 STM32F103C8T6管脚图3.2 电源电路电源模块需要考虑在输入和输出端增加滤波电路设计,滤除不必要的干扰,使整个电源电路更加稳定可靠。
单片机STM32F103C8T6的红外遥控器解码系统设计

78M i c r o c o n t r o l l e r s &E m b e d d e d S ys t e m s 2019年第10期w w w .m e s n e t .c o m .c n单片机S T M 32F 103C 8T 6的红外遥控器解码系统设计胡进德(仙桃职业学院科研处,仙桃433000)摘要:设计了一种适用于N E C 红外传输协议的解码系统㊂系统以单片机S TM 32F 103C 8T 6为核心,采用外部中断和定时器进行软件解码,解码结果通过串口调试软件在P C 机上进行了验证㊂详细介绍了N E C 红外传输协议和解码方法,包括系统软硬件设计㊁软件设计流程图㊁核心功能函数和程序代码㊂关键词:S TM 32F 103C 8T 6;N E C 红外传输协议;红外解码;外部中断;定时器中图分类号:T P 31 文献标识码:AD e s i g n o f D e c o d i n g S ys t e m f o r I n f r a r e d R e m o t e C o n t r o l l e r B a s e d o n S T M 32F 103C 8T 6H u J i n d e(S c i e n t i f i c R e s e a r c h D e p a r t m e n t ,X i a n t a o V o c a t i o n a l C o l l e ge ,X i a n t a o 433000,C h i n a )A b s t r a c t :A d e c o d i n g s y s t e m of i n f r a r e d r e m o t e c o n t r o l l e r s u i t a b l e f o r N E C i n f r a r e d t r a n s p o r t p r o t o c o l i s d e s ig n e d .Th e s ys t e m t a k e s M C U S TM 32F 103C 8T 6a s t h e c o r e t o c o m p l e t e s o f t w a r e d e c o d i n g b y e x t e r n a l i n t e r r u p t a n d t i m e r ,a n d t h e d e c o d i n g re s u l t s a r e v e r if i e d o n P C b y s e r i a l d e b ug g i n g s o f t w a r e .N E C i n f r a r e d t r a n s p o r t p r o t o c o l a n d d e c o d i n g m e th o d a r ei n t r o d u c e d i n d e t a i l ,i n c l u d i n gt h e s o f t w a r e a n d h a r d w a r e d e s i g n ,t h e f l o w c h a r t o f s o f t w a r e d e s i g n ,c o r e f u n c t i o n s a n d p r o gr a m c o d e .K e y wo r d s :S TM 32F 103C 8T 6;N E C i n f r a r e d t r a n s p o r t p r o t o c o l ;i n f r a r e d d e c o d i n g ;e x t e r n a l i n t e r r u p t ;t i m e r 引 言红外遥控具有体积小㊁信息传输可靠㊁功耗低㊁成本低等显著特点,越来越多地应用于嵌入式系统㊂红外遥控系统一般由发射和接收两大部分组成,红外遥控器所发射的信号编码格式不同,其解码的方法也会随之发生变化㊂目图1 N E C 红外传输协议的帧数据格式前市场上所用红外遥控器广泛使用两种形式的编码格式,一种是采用N E C 红外传输协议的P WM (脉冲宽度调制)方式,一种是采用P h i l i ps 红外传输协议的P P M (脉冲位置调制)方式[1]㊂通过对市场上一种名为T E L E S K Y 的红外遥控器[2]所发射的信号进行测试,研究表明,其信号波形和脉冲间隔时间符合N E C 红外传输协议,无重复码㊂本文依项目需要针对T E L E S K Y 红外遥控器设计了基于单片机S TM 32F 103C 8T 6的解码系统㊂1 N E C 红外传输协议N E C 红外传输协议的主要特征是:一帧数据包含8位用户编码(地址码)和8位按键数据码(命令码);用户编码和按键数据码均传送两次,一次是原码,一次是反码,以确保可靠传送;采用P WM (脉冲宽度调制)方式,以发射红外载波的占空比代表比特 0 和比特 1;载波频率是38k H z ;一个数据位的传输时间是, 0 用时1.125m s, 1 用时2.25m s [1]㊂N E C 红外传输协议的帧数据格式如图1所示,其位定义如图2所示㊂图2 N E C 红外传输协议的位定义在图1中红外遥控器发射的每帧数据有32位,由16位用户编码(含低8位用户编码和高8位用户编码)㊁8位按键数据码和8位按键数据码的反码组成㊂每帧数据发敬请登录网站在线投稿 2019年第10期79送前有一个引导码(同步码),引导码由一个9m s 的高电平和一个4.5m s 的低电平组成㊂每帧数据按照低位在前㊁高位在后顺序发送[3]㊂帧数据中采用反码是为了增加传输的可靠性,因此,反码可用于解码时进行校验对比㊂需要注意的是,遵循N E C 红外传输协议的发射芯片可有两种用户编码方式,一种是8位用户码原码加8位用户码的反码,另一种是16位用户编码,通过改变红外发射芯片外部电路来选择不同的用户编码方式[1]㊂在图2中比特 1 由一个0.56m s 的脉冲和1.69m s的低电平构成,比特 0 由一个0.56m s 的脉冲和0.56m s 的低电平构成㊂一个0.56m s 的脉冲对应0.56m s 的连续载波[1]㊂2 解码系统硬件设计单片机解码红外遥控器常用的方法有查询法㊁外部中断法和定时器捕获法[4]㊂本系统采用外部中断法,即通过外部中断检测红外信号利用单片机定时器测量帧数据中每一位数据的传输时间,从而识别数据位是比特 1还是比特 0[3],解码系统硬件设计如图3所示㊂图3 红外信号接收与解码电路图3中U 1为S TM 32F 103C 8T 6处理器,这是一款以A R M C o r t e x M 3为内核的32位单片机,具有运行速度快㊁处理能力强㊁外设接口丰富㊁价格低廉等特点,专门应用于对性能要求较高㊁成本要求较低以及低功耗的场合,其最高工作频率为72MH z ,工作电压为2~3.6V ,64K B的闪存和20K B 的S R AM ,37个I /O ,与通用端口G P I O映射的外部中断E X T I 有16个,1个16位高级控制定时器,3个16位通用定时器,3个U S A R T 串口通信模块等[5]㊂本系统通过S TM 32F 103C 8T 6的P A 7引脚以外部中断方式检测红外信号,使用通用定时器T I M 2测量帧数据中每一位数据的传输时间,解码结果通过U S A R T 1(P A 9为发送引脚)和串口调试软件在P C 机上显示㊂图3中U 2为一体化红外接收头H S 0038B ,它负责将调制在38k H z 上的红外编码信号接收和解调后送给S TM 32F 103C 8T 6的P A 7引脚进行检测㊂H S 0038B 第1引脚为正电源引脚,工作电压为2.7~5.5V ,实际工作电压为3.3V ,与S TM 32F 103C 8T 6工作电压相同;第2引脚为负电源引脚,接地;第3引脚为输出端,连接S TM 32F 103C 8T 6的P A 7引脚㊂当H S 0038B 没有接收到红外遥控信号时,第3引脚输出保持高电平;当接收到红外遥控信号时,第3引脚输出从高电平变为低电平,其下降沿触发S TM 32F 103C 8T 6的外部中断[6-7]㊂需要注意的是,一体化红外接收头输出解调后的脉冲信号电平与红外遥控器发送的编码格式电平反相[8],即S TM 32F 103C 8T 6的P A 7引脚接收到的帧数据格式电平与图1反相,其数据位定义也与图2反相:比特 1 由一个0.56m s 的低电平和1.69m s 的高电平构成,传输比特 1 需要2.25m s ;比特 0 由一个0.56m s 的低电平和0.56m s 的高电平构成,传输比特 0 需要1.125m s [9]㊂因此,通过外部中断E X T I 和定时器T I M 2统计P A 7引脚接收到的帧数据中2个下降沿之间的间隔时间就可得到帧数据中每一位数据的传输时间,从而识别数据位是比特 1 还是比特 0㊂3 解码系统软件设计在A R M 嵌入式系统开发中,对处理器功能模块的操作既可以通过对芯片底层的寄存器,也可以使用S T 公司提供的标准函数库[10],本系统采用标准函数库操作S T M 32F 103C 8T 6相关寄存器㊂解码系统软件设计主要涉及5个方面㊂3.1 配置红外脉冲信号输入引脚P A 7为下降沿触发中断通过初始化通用端口G P I O ㊁外部中断E X T I 和嵌套向量中断控制器N V I C 的相关寄存器,配置P A 7为下降沿触发中断㊂3.1.1 初始化G P I O 的相关寄存器将P A 7配置为浮空输入[10],开启端口时钟和A F I O 时钟,相关初始化程序如下:G P I O _I n i t T y pe D ef G P I O _I n i t S t r u c t u r e ; //声明结构体变量以便初始化G P I O 相关寄存器R C C _A P B 2P e r i p h C l o c k C m d (R C C _A P B 2P e r i p h _G P I O A |R C C _A P B 2P e r i ph _A F I O ,E N A B L E );//开启G P I O 端口时钟,用到E X T I 必须开启A F I O 时钟G P I O _I n i t S t r u c t u r e .G P I O _P i n =G P I O _P i n _7;//选中当前端口的引脚7G P I O _I n i t S t r u c t u r e .G P I O _M o d e =G P I O _M o d e _I N _F L O A T -I N G ;//设定为浮空输入G P I O _I n i t (G P I O A ,&G P I O _I n i t S t r u c t u r e);//初始化G P I O A 相关寄存器80M i c r o c o n t r o l l e r s &E m b e d d e d S ys t e m s 2019年第10期w w w .m e s n e t .c o m .c n3.1.2 初始化E X T I 的相关寄存器应将P A 7与外部中断线连接[10],并配置为下降沿触发中断请求,相关初始化程序如下:E X T I _I n i t T y pe D ef E X T I _I n i t S t r u c t u r e ;//声明结构体变量以便初始化E X T I 相关寄存器G P I O _E X T I L i n e C o n f i g (G P I O _P o r t S o u r c e G P I O A ,G P I O _P i n -S o u r c e 7);//将P A 7与外部中断线连接E X T I _I n i t S t r u c t u r e .E X T I _L i n e =E X T I _L i n e 7; //使用外部中断输入线7E X T I _I n i t S t r u c t u r e .E X T I _M o d e =E X T I _M o d e _I n t e r r u pt ; //设置E X T I 线路为中断请求E X T I _I n i t S t r u c t u r e .E X T I _T r i g g e r =E X T I _T r i g g e r _F a l l i n g ;//设置E X T I 线路为下降沿触发中断请求E X T I _I n i t S t r u c t u r e .E X T I _L i n e C m d =E N A B L E ; //开放E X T I 线路中断请求E X T I _I n i t (&E X T I _I n i t S t r u c t u r e );//初始化E X T I 相关寄存器3.1.3 初始化N V I C 的相关寄存器程序中用到了2个中断源:来自P A 7引脚的E X T I 下降沿触发中断和定时器T I M 2计数溢出中断㊂设定E X T I 中断优先级高于T I M 2中断,使用v o i d N V I C _P r i o r i t y-G r o u p C o n f i g (u i n t 32_t N V I C _P r i o r i t y G r o u p )函数设定优先级分组为第1组,E X T I 中断抢占优先级为1,T I M 2中断抢占优先级为0,相关初始化程序如下:N V I C _I n i t T y pe D ef N V I C _I n i t S t r u c t u r e ;//声明结构体变量以便初始化N V I C 相关寄存器N V I C _P r i o r i t y G r o u p C o n f i g (N V I C _P r i o r i t y G r o u p_1);//选择第1组 N V I C _I n i t S t r u c t u r e .N V I C _I R Q C h a n n e l =E X T I 9_5_I R Q n ;//配置中断源N V I C _I n i t S t r u c t u r e .N V I C _I R Q C h a n n e l P r e e m p t i o n P r i o r i t y =1;//抢占优先级为1N V I C _I n i t S t r u c t u r e .N V I C _I R Q C h a n n e l S u b P r i o r i t y =1;//子优先级为1N V I C _I n i t S t r u c t u r e .N V I C _I R Q C h a n n e l C m d =E N A B L E ;//使能中断通道N V I C _I n i t (&N V I C _I n i t S t r u c t u r e );//初始化N V I C 相关寄存器3.2 配置定时器T I M 2每0.1m s 产生一次溢出中通过初始化定时器T I M 2和N V I C 的相关寄存器,配置T I M 2每0.1m s 产生一次溢出中断,以便在其中断处理程序中统计帧数据中每一位数据的传输时间㊂3.2.1 初始化T I M 2的相关寄存器设定系统时钟为72MH z ,预分频值P r e s c a l e r 为3600,计数器自动重装值P e r i o d 为2,此时定时器T I M 2每0.1m s 产生一次溢出中断[10]㊂相关初始化程序如下:S ys t e m I n i t (); //设置系统时钟为72MH z T I M _T i m e B a s e I n i t T y pe D ef T I M _S t r u c t I n i t ;//声明结构体变量以便初始化T I M 2寄存器R C C _A P B 1P e r i p h C l o c k C m d (R C C _A P B 1P e r i ph _T I M 2,E N A -B L E );//开启T I M 2时钟T I M _S t r u c t I n i t .T I M _P e r i o d =2;//设定计数器自动重装值T I M _S t r u c t I n i t .T I M _P r e s c a l e r =3600;//设定预分频值T I M _S t r u c t I n i t .T I M _C l o c k D i v i s i o n =T I M _C K D _D I V 1;//设置时钟分割T I M _S t r u c t I n i t .T I M _C o u n t e r M o d e =T I M _C o u n t e r M o d e _U p;//设置向上计数模式T I M _T i m e B a s e I n i t (T I M 2,&T I M _S t r u c t I n i t );//初始化T I M 2寄存器T I M _I T C o n f i g (T I M 2,T I M _I T _U p d a t e ,E N A B L E ); //使能T I M 2中断T I M _C m d (T I M 2,E N A B L E );//启动T I M 2T I M _C l e a r F l a g (T I M 2,T I M _F L A G _U pd a te ); //清除T I M 2的待处理标志位3.2.2 初始化N V I C 的相关寄存器配置定时器T I M 2为中断源,设置其优先级,相关初始化程序如下:N V I C _P r i o r i t y G r o u p C o n f i g (N V I C _P r i o r i t y G r o u p _1);//选择第1组N V I C _S t r u c t I n i t .N V I C _I R Q C h a n n e l =T I M 2_I R Q n;//配置中断源N V I C _S t r u c t I n i t .N V I C _I R Q C h a n n e l C m d =E N A B L E ;//使能中断通道N V I C _S t r u c t I n i t .N V I C _I R Q C h a n n e l P r e e m p t i o n P r i o r i t y=0;//抢占优先级为0N V I C _S t r u c t I n i t .N V I C _I R Q C h a n n e l S u b P r i o r i t y=1;//子优先级为1N V I C _I n i t (&N V I C _S t r u c t I n i t ); //初始化N V I C 相关寄存器3.3 统计帧数据中每一位脉冲的传输时间定时器T I M 2每0.1m s 产生一次溢出中断,在T I M 2中断服务程序中,全局变量i r _t i m e 每0.1m s 自动加1㊂通过i r _t i m e 可统计P A 7引脚接收的帧数据中相邻的2个下降沿之间的间隔时间,同时也获得帧数据中每一位脉冲的传输时间㊂程序如下:v o i d T I M 2_I R Q H a n d l e r (v o i d ) //T I M 2中断服务程序{T I M _C l e a r I T P e n d i n g B i t (T I M 2,T I M _I T _U pd a te );//清除T I M 2中断标志位以便下一个0.1m s 到来时触发T I M 2//中断i r _t i m e ++;//全局变量i r _t i m e 的计数值自动加1}3.4 存储从引导码开始的33个脉冲传输时间当H S 0038B 没有接收到红外信号时,系统默认处在敬请登录网站在线投稿 2019年第10期81图4 E X T I 中断服务流程图空闲 状态,P A 7引脚一直是高电平㊂当H S 0038B 接收到红外信号时,P A 7引脚由高电平变为低电平,此时将触发外部中断E X T I ,在E X T I 中断服务程序中先判断采集到的脉冲信号是否为引导码,如果i r _t i m e 计数值大于90(9m s )且小于150(15m s),则可视为引导码(引导码传输时间理论值为13.5m s,考虑到S TM 32F 103C 8T 6和红外遥控发射器的晶振频率与标称值会有一定的偏差,以及H S 0038B 红外接收头输出波形的轻微畸变,在程序设计时要留有一定的容限误差[4]),并将从引导码开始的33个脉冲传输时间(i r_t i m e 的计数值)保存到事先定义好的数组i r d a t a [33](全局变量)中㊂E X -T I 外部中断服务程序流程图如图4所示㊂3.5 从数组i r d a t a [33]中提取比特 1和比特 0并形成4个字节的按键码数组i r d a t a [33]存放了33个脉冲传输时间,其中数组元素i r d a t a [0]存放的是引导码传输时间,其他32个数组元素i r d a t a [1]~i r d a t a [32]存放了4个字节按键码的传输时间㊂比特 1 的传输时间为2.25m s,其对应的数组元素取值为22或23;比特 0 的传输时间为1.125m s,其对应的数组元素取值为11或12㊂在程序设计时同样要留有一定的容限误差,当数组元素i r d a t a [1]~i r d a t a [32]取值为20~25时,可认为接收到比特 1,否则认为接收到比特 0 ㊂因此从数组i r d a t a [33]中可提取4个字节按键码:i r -d a t a [1]~i r d a t a [16]提取16位用户编码,i r d a t a [17]~i r d a t a [24]提取8位按键数据码,i r d a t a [25]~i r d a t a [32]提取8位按键数据码的反码㊂提取4个字节按键码的函数流程图如图5所示㊂4 解码结果验证为了验证解码方案的正确性,通过串口调试软件将实验结果显示在P C 机上㊂图6是T E L E S K Y 遥控器外观和对应的按键数据码,图7是显示在P C 机上的实验结果㊂图7中有84个数据码,从左向右每4个数据码(对应4个字节共32位比特)一组对应一个按键,分别指示按键的用户码原码㊁用户码的反码㊁按键数据码和按键数据码的反码㊂如遥控器左上角第一个按键 C H- 的解码为00F F 45B A ,按键 C H图5 提取4个字节按键码的函数流程图图6 遥控器外观和按键数据码的解码为00F F 46B 9,其他按键的解码依此类推㊂从解码的实验结果可以看出,32位比特的前16位为用户码,后16位为8位按键数据码和按键数据码的反码,符合N E C 红外传输协议,且图7中21个按键数据码与图6中21个按键的数据码相同,相互依次对应,从而验证了解码方法的正确性㊂图7 串口调试软件显示的按键码结 语本文介绍的红外遥控器解码方法原理直观㊁简单可靠,已经应用于实际项目中,可为无线遥控嵌入式系统学习者提供一个应用范例㊂该方法不仅适用于N E C 红外传输协议,对于其他传输协议的解码同样有很好85敬请登录网站在线投稿2019年第10期85表4使用H M M在嘈杂环境下识别结果控制指令1号正确次数/总次数2号正确次数/总次数3号正确次数/总次数4号正确次数/总次数闭合拇指7/106/105/104/10伸开拇指6/107/105/106/10手腕逆时针7/106/107/108/10手腕归位6/104/104/105/10伸开手掌5/105/106/107/10握紧拳头6/104/105/106/10结语HMM算法实现的前提是需要大量的语音样本训练,不仅需要考虑到语音语调的差别,还要考虑非特定人性别年龄的差异,这样才能够适应实际语音中的不同情况,因此HMM算法具有良好的识别性和抗噪性㊂参考文献[1]周艳萍.机器人嵌入式语音识别系统设计与开发[D].广州:华南理工大学,2012.[2]周慧芳.基于HMM的嵌入式语音识别系统的研究[D].广州:广东工业大学,2011.[3]黄岗.马尔可夫及隐马尔可夫模型的应用[J].电子设计工程,2013,21(17):6062.[4]任昕.基于隐马尔可夫模型和卷积神经网络的W e b安全检测研究[D].长沙:湖南大学,2018.[5]王稚慧.基于HMM建模的语音识别算法的研究[D].西安:西安建筑科技大学,2005.[6]曹冠彬.基于HMM的连续语音识别技术研究[D].南京:南京理工大学,2018.[7]袁腾,李秋红,杨国斌,等.基于Z i g B e e和3G技术的W S N s 环境监控系统设计[J].传感器与微系统,2012,31(6):128129,133.[8]田泽,智爱娟,阎效莺,等.U D A1341T S在嵌入式语音系统中的应用[J].西北大学学报:自然科学版,2006(2):214220.[9]周夕良.嵌入式语音识别系统研究[J].电脑与信息技术,2014,22(1):5658.张起浩㊁蒋少国,主要研究方向为智能硬件设计;赵鹏(助理实验师),通讯作者,主要研究方向为智能硬件设计㊁语音识别㊂(责任编辑:薛士然收稿日期:2019-04-23)[5]U n d e r w o o d C,P e l l e g r i n o S,L a p p a s V J,e t a l.U s i n gC u b e S a t/m i c r o s a t e l l i t e t e c h n o l o g y t o d e m o n s t r a t e t h e A u-t o n o m o u s A s s e m b l y o f a R e c o n f i g u r a b l e S p a c e T e l e s c o p e(A A R e S T)[J].A c t a A s t r o n a u t i c a,2015(114):112122.[6]韩忠辉.基于G P I B的无线通信计量自动测试系统[J].自动化与仪器仪表,2016(6):110.[7]刘倩茜,王格芳.基于多总线结构的电路板测试系统设计研究[J].价值工程,2016,35(32):131133.[8]S h l a d o v e r S E.C o n n e c t e d a n d a u t o m a t e d v e h i c l e s y s t e m s:I n-t r o d u c t i o n a n d o v e r v i e w[J].J o u r n a l o f I n t e l l i g e n t T r a n s p o r-t a t i o n S y s t e m s,2018,22(3):190200.[9]张凯,李涵,姜静.基于A T E与B I T组合的N AM P自动测试与故障诊断系统设计[J].海军航空工程学院学报,2015,30(4):321325.[10]刘鹏飞,谢森,姚玉山,等.某型制导武器通用自动测试系统方案设计[J].计算机测量与控制,2017,25(6):9599.[11]曹兴冈,韩晨.基于P X I航电计算机测试设备的设计与实现[J].电子技术,2016(2):6.[12]刘新飞,李亚利,王东,等.通用航管二次雷达功放模块自动测试系统研制[J].计算机测量与控制,2016,24(9):4749.[13]L i u Y,P e n g Y,W a n g B,e t a l.R e v i e w o n c y b e r p h y s i c a ls y s t em s[J].I E E E/C A A J o u r n a l o f A u t o m a t i c a S i n i c a,2017,4(1):2740.[14]郭栋梁,刘新妹,殷俊龄,等.通用电路板自动故障诊断系统的设计与实现[J].中国测试,2016,42(7):112116.[15]宋丽涵,张琴.基于总线技术的仪器仪表自动检定系统设计[J].兰州文理学院学报:自然科学版,2016(2):5256.何进(讲师),主要从事电子技术㊁电力电子技术等教学研究㊂(责任编辑:薛士然收稿日期:2019-05-06)的参考价值㊂参考文献[1]李幸泽.基于W E B方式的智能家电控制网关的硏究[D].广州:广东工业大学,2012.[2]T E L E S K Y.红外线遥控器,2019.[3]李雪莹.基于单片机的空调红外线编解码系统的设计和实现[D].成都:电子科技大学,2014.[4]何乃味.单片机定时器捕获模式解码红外遥控器的方法[J].现代电子技术,2012(18):1113.[5]意法半导体(S T).S TM32F103x8d a t a s h e e t,2019.[6]圣狄豹.H S0038B红外线接收发射对管,2019.[7]管芳绍,徐志江,孟利民.基于嵌入式系统的抗干扰红外软解码方法[J].计算机技术与应用,2010(10):3033.[8]杨萍.基于F P G A的功放遥控控制系统的设计与实现[D].成都:电子科技大学,2015(3):2933.[9]胥加林,游安华,皮大伟.基于单片机的智能红外遥控开关[J].机械制造与自动化,2016(4):200201.[10]肖广兵,万茂松,羊玢.A RM嵌入式开发实例[M].北京:电子工业出版社,2013.胡进德(副教授),主要研究方向为嵌入式系统㊁机电一体化㊂(责任编辑:薛士然收稿日期:2019-05-27)。
stm32红外遥控原理

stm32红外遥控原理标题:stm32红外遥控原理摘要:本文将介绍stm32红外遥控原理,包括红外遥控的基本原理、通信协议、硬件设计以及程序编写等方面。
通过详细步骤,读者能够深入了解stm32红外遥控的工作原理及实现方法。
引言:红外遥控技术是目前广泛应用于电视、空调、音响以及其他家电产品中的一种控制方式。
作为一种简单、方便、实用的遥控方式,红外遥控技术也被广泛应用于工业自动化、智能家居等领域。
本文将详细介绍基于stm32的红外遥控原理,并带领读者一步一步了解其工作原理及实现方法。
第一部分:红外遥控基本原理1.1 红外辐射与感光红外辐射是指波长在0.76μm至1000μm之间的电磁波辐射。
由于人类眼睛无法直接感应到红外辐射,常用的红外遥控设备将其用作通信手段。
在红外遥控中,遥控器中的红外发射器会发射特定频率的红外光,在设备的接收端,红外接收器能够感受到这些红外光。
1.2 遥控信号解码与通信协议遥控信号解码是红外遥控中至关重要的一步。
常见的红外遥控通信协议有NEC、SONY、RC-5等。
在不同的协议中,通过解码器能够将接收到的红外遥控信号转换为具体的命令码,从而实现对被遥控设备的控制。
第二部分:stm32红外遥控硬件设计2.1 stm32开发板选择在设计stm32红外遥控系统时,首先需要选择合适的stm32开发板。
根据项目需求,选择具有足够IO口和外设的开发板,例如STM32F103系列开发板。
2.2 红外接收电路设计为了接收红外遥控信号,需要设计一个红外接收电路。
该电路包括红外接收器、电阻、电容等组成。
红外接收器能够将接收到的红外光转换为电信号,经过滤波电路处理后,输出给stm32开发板。
2.3 红外发射电路设计红外发射电路主要由红外发射器和电流驱动器组成。
通过STM32的IO口,输出一定频率、占空比的PWM信号,经过电流驱动器放大后,通过红外发射器发送红外光信号。
第三部分:stm32红外遥控程序编写3.1 初始化红外接收模块通过stm32的GPIO初始化函数,将红外接收器的输出引脚连接至相应引脚,并对其进行配置。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
STM32单片机对红外接收系统的设计
4.23.1概述
人的眼睛能看到的可见光按波长从长到短排列,依次为红、橙、黄、绿、青、蓝、紫。
其中红光的波长范围为0.62~0.76μm;紫光的波长范围为0.38~0.46μm。
比紫光光波长更短的光叫紫外线,比红光波长更长的光叫红外线最广义地来说,传感器是一种能把物理量或化学量转变成便于利用的电信号的器件,红外传感器就是其中的一种。
随着现代科学技术的发展,红外线传感器的应用已经非常广泛。
4.23.1.1红外接收头工作原理
红外接收头一般是接收、放大、解调一体头,一般红外信号经接收头解调后,数据“0”和“1”的区别通常体现在高低电平的时间长短或信号周期上,单片机解码时,通常将接收头输出脚连接到单片机的外部中断,结合定时器判断外部中断间隔的时间从而获取数据。
重点是找到数据“0”与“1”间的波形差别。
3条腿的红外接收头一般是接收、放大、解调一体化,接收头输出的是解调后的数据信号,单片机里面需要相应的读取程序。
具体详细的使用参数和时序请参考官方技术手册。
4.23.1.2在STM32实验系统中红外系统的组成
在我们是试验中使用的是红外线遥控器。
因为红外线遥控器已经被广泛的使用在各类型的家电产品上,它的出现给使用电器提供了很多的便利。
红外线系统一般由红外发射装置和红外接收设备两大部分组成。
红外发射装置又可由键盘电路、红外编码芯片、电源和红外发射电路组成。
红外接收设备可由红外接收电路、红外解码芯片、电源和应用电路组成。
通常为了使信号更好的被发射端发送出去,经常会将二进制数据信号调制成脉冲信号,通过红外发射管发射。
常用的有通过脉冲宽度来实现信号调制的脉宽调制(PWM)和通过脉冲串之间的时间间隔来实现信号调制(PPM)两种方法。
1、常用的红外发光二极管其外形和发光二极管LED相似,发出红外光。
管压降约1.4v,工作电流一般小于20mA。
为了适应不同的工作电压,回路中常常串有限流电阻。
一些彩电红外遥控器,其红外发光管的工作脉冲占空比约为1/3-1/4;一些电器产品红外遥。