定时器输入捕获解析NEC红外接收

实验介绍

STM32F10ZET6为主控,使用TIM定时器输入捕获功能解析红外接收NEC。

使用硬件:正点原子精英板、HS0038红外接收头。

NEC通信协议介绍

红外协议有多种,NEC是常用的通信协议,载波频率38kHZ,接收的红外协议格式如下:

        引导码为13.5ms的周期,然后为16个字节的用户码以及8个字节的数据码和8个字节的数据反码。

注意:红外接收头内部的三极管电路具有反向功能,也就是0变1,1变0的过程。所以在接收数据时候可以设置为下降沿捕获。

        前者为数据“1”周期为2.25ms低电平所占时间约0.56ms, 数据“0”周期为1.12ms低电平所占时间一样,此信号为反向后的信号。

定时器输入捕获

        输入捕获模式可以用来测量信号周期频率以及脉冲宽度。在捕获配置中可设置为下降沿捕获,每来一个下降沿就保存一次CHxCV寄存器里面的值,然后清空寄存器值,就不需要使用第二次上升沿和第一次上升沿做差值运算。

配置流程如下:

1.配置HS0038红外接收头数据接收端口,我这里使用的为PB9,还需要对应上定时器的通道。

2.确认定时器以及通道号,我这里PB9对应TIM4的通道4。

3.初始化定时器,stm32103zet6到TIM4的时钟频率为72MHZ,我配置预分配为72 - 1,重装载为65536 - 1,为1MHZ,溢出值为655.36毫秒。

4.初始化输入捕获,配置滤波、极性、信号选择、分频,在标准库的结构体中都可配置。我这里没有设置滤波,这里的极性选择捕获下降沿;信号选择有两种,直接输入和间接输入两种,在这里有两路输入选择,直接输入就是对应的通道号所捕获的信号,间接输入可以捕获其他通道的信号,如通道一可以捕获通道二的信号,通道二也可以捕获通道一输入信号,这里两两分组通道1,2为组,通道3,4为组,使用到的场景为捕获一个周期里面高电平或者低电平所占的时长或者比例;分频也设置的默认值1。

5.功能使能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

只想做好编程的小王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值