初级会员

- 积分
- 177
- 金钱
- 177
- 注册时间
- 2019-8-6
- 在线时间
- 23 小时
|
在上个实验中我对通用定时器TIM5进行使用,STM32F429 输入捕获实验:cubemx 实现定时器对变化沿的输入捕获
本次实验中我们实现红外遥控实验,将会用到高级定时器的更新、输入捕获功能。红外遥控实现是通过板子上的红外接收头,接收红外遥控器发送的红外信号,可以将红外信号转为高低电平的形式,而红外接收头的输出端接在板子上的PA8,它在接收到信号后会转换为NEC protocol的PWM(脉冲宽度调制),也就是一种协议。
比如在接收端一个逻辑1就是560us低电平+1680us高电平。逻辑0就是560us低电平+560us高电平。
遥控器在发送数据前,会先发送一个同步码(9ms低电平+4.5ms高电平),然后是地址码,地址反码,控制码,控制反码(四个码均为8位),如果发送完一帧数据后按键还没有松开,接收头则会重复发送连发码(9ms低电平+2.5ms高电平+0.56ms低电平+97.94ms高电平),表示仍旧是上一个控制命令。
现在我们了解了协议,其实就是判断各高低电平的持续时间,来得到想要的地址码,地址反码,控制码,控制反码。从而判断地址码、地址反码看看是不是给自己的命令,如果是就判断控制反码是否合法,获取控制码。
那么问题来了,怎样得到高低电平脉冲的持续时间呢?那么就用到了定时器的输入捕获以及更新(如果此处不理解可以回顾一下前一章)。
PA8连接着高级定时器TIM1,其实思路和上一章的普通定时器获取高电平脉冲持续时间的一致,只不过这次加上了协议,稍微多了一个判断步骤而已。
​ ​​
————————————————
版权声明:本文为CSDN博主「坛城」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
详细实验过程请看原文链接:https://blog.csdn.net/nianzhu2937/article/details/103994500
|
|