历史上的今天
返回首页

历史上的今天

今天是:2025年02月11日(星期二)

正在发生

2020年02月11日 | 基于STM32定时器的红外遥控数据接收设计原理

2020-02-11 来源:elecfans

一、原理

1、红外发射协议

红外发射协议已经在之前的文章中写过,在此就不赘述。

2、定时器计数和输入捕获

定时器就是按照一个特定的频率对计数值进行加一或减一操作,当数值溢出时则产生一个标志或中断。

定时器的输入捕获就是可以测量输入信号的脉冲宽度。

本次就是通过普通计数和输入捕获的结合来实现的。

3、实现方法

利用定时器记录输入信号高脉冲的时间,通过该时间来判断数据是否是同步头信息、数据 1 或者数据 0。


二、实现

1、配置 定时器2 输入捕获通道

示例代码中使用 PA1 管脚,配置为上拉输入模式,复用功能为定时器2的通道2。

定时器采用普通定时器,定时器2,该定时器具有输入捕获功能。


配置定时器的两种工作模式,一个是普通计数器TIM_TImeBaseInit,一个是输入捕获模式TIM_ICInit。


配置定时器2的中断源,有两个中断源,一个是更新中断TIM_IT_Update,一个是输入捕获中断TIM_IT_CC2。


配置代码如下:

基于STM32定时器的红外遥控数据接收设计原理

基于STM32定时器的红外遥控数据接收设计原理

2、添加定时器2的中断服务函数

使用了两种定时器中断源,分别为计数溢出中断和输入捕获中断。但是这两种方式触发中断的中断服务函数是同一个,即void TIM2_IRQHandler(void)。


定时器使用的是 TIM2 通用定时器,模式为向上计数。在该模式中,计数器从 0 计数到自动加载值 (TIMx_ARR计数器的内容) ,然后重新从 0 开始计数并且产生一个计数器溢出事件。定时器计数溢出的周期为10ms,该中断的产生说明在10ms内都没有输入捕获来清空计数值,也就是输入信号没有发生变化,说明 10ms 没有收到红外信号了,因此可判断为接收完成。


输入捕获是为了测量高电平的持续时间,因此采用上升沿触发中断,对计数值清零,切换下一次为下降沿触发;在下降沿触发中断时,记下计数值,切换下一次为上升沿触发。因此在下降沿记下的时间即为高电平的时序时间。记录高电平持续时间的原因,是因为红外信号在表示逻辑0、逻辑1时低电平的持续时间的相同的,而高电平的持续时间不同的。

示例代码如下:

基于STM32定时器的红外遥控数据接收设计原理

基于STM32定时器的红外遥控数据接收设计原理

3、红外按键扫描函数

该函数放在主循环中,轮训判断按键是否接收完成。如果接收完成则开始分析键值。

该函数返回一个16位的数值,其中低八位表示键值,高八位表示按下的次数,依次来分析长按键和短按键。这一点主要是通过红外协议中重复码的规定来实现的。


红外协议中规定,若按下一个键后没有放开,则会以 108ms 为一个周期发送重复码。重复码表现为2.25ms的高电平。


示例代码如下:

基于STM32定时器的红外遥控数据接收设计原理

基于STM32定时器的红外遥控数据接收设计原理

4、主函数

在 main 函数中,对 IO 口和 定时器进行初始化。

主循环中,通过判断接收完成标志位,对接收完成的按键控制码进行打印。

SystemKeyHandle()函数处理每一个按键的操作逻辑。

示例代码如下:

基于STM32定时器的红外遥控数据接收设计原理

三、演示

如下图为串口打印出接收的红外按键值信息:

基于STM32定时器的红外遥控数据接收设计原理

推荐阅读

史海拾趣

Black Box Corporation公司的发展小趣事

Black Box意识到,在电子行业中,不同的行业细分市场有着不同的需求和特点。因此,公司决定采取深耕行业细分市场的策略,针对金融、教育、制造等不同行业提供定制化的解决方案。这一策略使Black Box能够更好地满足客户的实际需求,提高了客户满意度和忠诚度。

ECLIPTEK公司的发展小趣事

随着全球对环保问题的日益关注,ECLIPTEK公司积极响应环保号召,将绿色环保理念融入其产品研发和生产过程中。公司采用环保材料和清洁能源,减少生产过程中的废弃物和污染物排放。同时,ECLIPTEK还积极参与环保公益活动,推动电子行业的可持续发展。

Deutron Electronics Corp公司的发展小趣事

Deutron Electronics Corp深知研发和创新对于公司发展的重要性。因此,公司始终保持着对研发的高投入,不断引进和培养人才。公司建立了完善的研发体系,鼓励员工参与创新活动,并为他们提供了充足的资源和支持。这些措施使得Deutron Electronics Corp在研发方面取得了显著成果,为公司的发展提供了源源不断的动力。

HAHN - Elektrobau GmbH & Co KG公司的发展小趣事

进入21世纪后,高通在推动5G技术发展方面发挥了关键作用。作为真正的5G领军企业,高通在基础研发方面持续投入,拥有引领和参与标准制定的长期历史。高通的5G技术涵盖了从系统构建到多样化应用的各个方面,包括毫米波频谱的利用、大规模MIMO技术的演进等。这些突破性发明为现代蜂窝通信提供了强有力的支撑,使得高通在5G标准制定和技术实施方面占据了核心地位。高通已签订超过150份5G许可协议,为全球超过180亿台终端提供了技术支持。

Dynachip Corp公司的发展小趣事

为了进一步提升公司的竞争力,Dynachip Corp积极寻求国际合作机会。他们与国际知名的半导体企业建立了战略合作关系,共同研发新技术、新产品。同时,他们还积极开拓国际市场,将产品销往全球各地。这些国际合作和市场拓展的努力使Dynachip Corp在国际市场上树立了良好的品牌形象。

力芯微(ETEK)公司的发展小趣事

随着下游电子产品的更新换代和手机的快速普及,力芯微公司敏锐地捕捉到了这一市场机遇。公司及时调整研发方向,推出一系列低压低功耗的电源类产品,成功进入手机市场。这一转型不仅使公司实现了业务的多元化,也为公司带来了新的增长点。

问答坊 | AI 解惑

汽车控制单元和分立电子元件的重要性

现在的汽车设计工程师正不断致力于设计出重量和能耗更低,同时安全性和舒适性更高的汽车。工程师们越来越排斥利用常规的能耗技术——笨重而高成本的机械解决方案来达到这样的目标。平均到每一辆车来说,每额外增加50kg的重量或100W的功率会带来0.2 ...…

查看全部问答>

2009年电子设计竞赛的一些新特点~~

本帖最后由 paulhyde 于 2014-9-15 03:38 编辑 1、今年不叫Sony杯了,好象换NEC赞助了。。呵呵 2、今年会对“最小系统”给出定义或者说明,所以往年的准备思路可能要换一换了,基本上现在给出的最小系统的概念是“单片机,ADC,DAC,存储”。一定 ...…

查看全部问答>

fpga资料大全

一些很有意思的fpga的开发资料,我也希望大家能多多指教…

查看全部问答>

STM32能接5V的器件吗,如MAX232?

                                  …

查看全部问答>

STM32103中关于AFIO和USART的问题!

                                 在一个小系统中调试发现,如果在时钟初始化中里把AFIO打开,那么USART2就进入不了接收中断,关闭AFIO后,USART2接 ...…

查看全部问答>

“TI杯”赛后交流群

大学快结束了,把自己的东西拿出来和大家分享一下,一起交流一下,未必不是一件快事。。。。 群名:“TI杯”赛后交流群 群号:130252614…

查看全部问答>

测试实践之 为 碎碎念问答 设计一个简单测试

这不是一个单纯的 为论坛提出BUG什么的帖子。 这只是一个实践,一个关于测试的实践。 我很久没打开个人空间了,无意打开,发现了这个新功能。 叫 碎碎念一下 是个小问答。挺有爱的,我就试试咯 结果至今尚未成功过一次。 于是我想到,给这个小 ...…

查看全部问答>

Multisim 作用有多大??

其实很弱,自己在模拟方面,大二学模拟电路的时候,听说了这个工具-- Multisim  ,在之前使用过 proteus 软件做过51的仿真。其实自己当时也不知道 proteus和multisim的区别,只是听学长说proteus是用来做数字的,而multisim 是用来做模 ...…

查看全部问答>

DE1-soc ubantu系统无法宽带连接拨号上网

今天想用一下ubantu系统,所以在友晶官网上下载了ubantu系统,装上SD卡后启动什么的一切都正常,但是无法联网,我用的是宽带连接拨号上网方式,求原因 …

查看全部问答>