STM32红外线模块

本文详细介绍了STM32红外线模块的工作原理,包括连接跳线帽、NEC协议解析、引脚配置及程序设计思路。通过开启定时器输入捕获,设置中断,实现信号的捕获和判断,识别不同信号类型。最后,文章提到了如何处理接收的信号,并通过LCD屏显示数据。
摘要由CSDN通过智能技术生成

STM32 红外线模块

一.原理

1.连接跳线帽在这里插入图片描述

如图,画圈的黑色部分为红外线模块的硬件设备,黄色为跳线帽,记住使用的时候一定要连跳线帽,否者无法使用。

2.NEC协议

首先红外线的主要载波频率
高电平 38Khz
低电平 无载波

在这里插入图片描述

码位定义:560 us一个脉冲
信号1:2.25ms (560us脉冲+1680us低电平)
信号0:1.125ms (560us脉冲+560us低电平)
则接收头接受的信号为:
信号1:2.25ms (560us低电平+1680us脉冲)
信号0:1.125ms (560us低电平+560us脉冲)

NEC指令格式:同步码头(9ms低电平+4.5ms高电平),地址码头(区分红外遥控器),地址反码,控制码,控制反码(8位数据格式,反码用于校验),连发码(9ms低电平+2.5ms高电平+0.56ms低电平+97.94ms高电平,以此来统计连发码的次数来标记按键按下的次数)
注:如果高电平超过100ms,一般是超过130ms以后,认为不是连发码。

3.引脚方面

在这里插入图片描述
战舰和精英的开发板是PB9引脚;(该引脚接的是定时器4的第四个通道)
mini的开发板则是PA1的引脚;(该引脚接的是定时器5的第二个通道)
由于定时器和引脚的不同,三个开发板的红外线模块的程序也略有不同。

4.大致思路

1.开启定时器的输入捕获,设置为上升沿捕获。(频率为1MHZ,装载值为10000,溢出时间为10ms);
2.中断,更新和捕获。(上升捕获,溢出更新);
3.上升捕获调为下降捕获,定时器计数值设置为0.
对捕获值进行判断;
300-800(650us,逻辑值0)
1400-1800(1680us,逻辑值1)
2200-2600(2500us,连发码)
4200-4700(4500us,同步码)
注:定时器溢出,若收到同步码,且第一次溢出,则标记一次信息采集成功。在这里插入图片描述

二.代码讲解在这里插入图片描述

首先是对PA1端口的使能,载设置定时器5的通道2.频率为1M,装载值为1000,溢出时间为10ms。,在设置中断(跟新中断和捕获中断)。设置中断一定要记住,在此之前,要设置中断优先级。

在这里插入图片描述在这里插入图片描述
RmtSta 有8位,每一位表示的意思都不一样。
位7(第8位),表示是否接受到了引导码(同步码)。
位6(第7位),为接受信息的标志,接受完所有信息为1.
位5(第6位)保留。
位4(第5位),标记上升沿是否已经捕获。
位【3:0】(第1-4位),溢出计时器。
Dval 下降沿计数器的值
RmtRec 红外接受到的数据
RmtCnt 按键按下的次数
程序的大致思路为看前文所示。
在这里插入图片描述
接受完信号后,就是对信号的处理。先将信号进行分离。分为地址码,地址反码。再进行分析,如图所示。在这里插入图片描述
在这里插入图片描述
最后就是通过LCD 屏,对接受到的数据进行显示,如图所示。

  • 2
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值