由于前一段时间有个案子的缘故,需要一个红外解码的程序。在网上也看到了其他人写的程序,也看到了一些网友写的STM32F103的例程。感觉他们的解码要么复杂,要么采用了高大上的输入捕获功能,这样的解码方式感觉不太友好。于是自己思索一番,编写了一个基于定时循环执行的解码程序,就是只要定期执行就能解码的程序。这样的解码程序最大的优点就是不占用CPU资源,不需要延时函数,另外移植起来也是so easy!
解码程序主要使用了两个外部变量,一个是ir_decode_ok_flag 解码成功标志位,一个是ir_code[4]码值保存变量。
使用方法,就是定时100us执行一次就可以了。当然其他定时时间间隔也是可以的,需要修改一下同步码、位码的时间上下限值。
遥控器用是某宝买的那个mp3播放器的遥控,引导码是 9ms低电平 + 4.5ms高电平。
点击这里下载源码:HK32F030C8T6红外解码源码.rar
1)红外遥控波形图(已经从载波解调后的波形)
2)逻辑分析仪抓取验证
3)遥控器键码值表
4)实验实物图
5)代码测试结果图