看到网上铺天盖地的红外解码程序,但是发射的却是不多,有也是通过while死循环来实现的,破坏了程序的实时性。正好最近做了个案子,需要通过红外通信传输温度,就来和大家讲讲吧。
1、红外通信协议:9ms低电平+4.5ms高电平+8位设备码+8位设备码反码+8位数据码+8位数据码反码+500us低电平+25ms高电平,发码的时候循环发送以上数据。这里说明一下,正规的遥控器会有重复码,我这里没有发送重复码。想深入研究的,可以网上阅读NEC协议相关的资料,自行添加重复码发送功能。
2、单片机用的是STM32F030单片机,具体的请看程序和原理图吧。主要部分都添加了注释,不懂的下面跟帖回复。
3、红外发送信号是用定时器17,单片机的管脚PB7,产生38K的PWM波,占空比为高/低=2/1。红外解码用的是PB6外部中断加定时器14解码的。
程序注释的应该够清楚了,感兴趣的同学并且不懂的就跟帖说明哈。如果对程序结构有什么疑问,可以参考网址:http://www.openedv.com/posts/list/22281.htm
好了,下面是大家最想看的的源码和图纸了,希望对大家有帮助。有了这个,再加一个USB逻辑分析仪,可以自己做万能红外遥控器了,嘎嘎。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>