基于stm32的红外遥控

内容分三个部分:
(1)红外遥控协议
(2)硬件连接
(3)代码

1、红外遥控协议
红外遥控是一种无线、非接触控制技术,具有抗干扰能力强,信息传输可靠,功耗低,成本低,易实现等显著优点,被诸多电子设备特别是家用电器广泛采用,并越来越多的应用到计算机系统中。同类产品的红外线遥控器,可以有相同的遥控频率或编码,而不会出现遥控信号“串门”的情况。红外遥控的编码目前广泛使用的是:NEC Protocol 的PWM(脉冲宽度调制)和Philips RC-5 Protocol 的PPM(脉冲位置调制)。这里采用的是NEC Protocol的PWM协议。
<1> NEC协议特征
(1)8位地址和8位指令长度;
(2)地址和命令2次传输(确保可靠性)
(3)PWM脉冲宽度调制,以发射红外载波的占空比代表“0”和“1”;
(4)载波频率为38Khz;
(5)位时间为1.125ms或2.25ms。
<2>NEC码的位定义
一个脉冲对应560us的连续载波,一个逻辑1传输需要2.25ms(560us脉冲+1680us低电平),一个逻辑0的传输需要1.125ms(560us脉冲+560us低电平)。而遥控接收头在收到脉冲的时候为低电平,在没有脉冲的时候为高电平,这样,我们在接收头端收到的信号为:逻辑1应该是560us低+1680us高,逻辑0应该是560us低+560us高。
<3>NEC遥控指令格式
NEC遥控指令的数据格式为:同步码头、地址码、地址反码、控制码、控制反码。同步码由一个9ms的低电平和一个4.5ms的高电平组成,地址码、地址反码、控制码、控制反码均是8位数据格式。按照低位在前,高位在后的顺序发送。采用反码是为了增加传输的可靠性(可用于校验)。
接收某一信号的波形
由图可知该红外信号的地址码为00000000,控制码为00010101,到最后还收到了一持续高电平的脉冲,如果在一帧数据发送完毕之后,按键仍然没有放开,则发射重复码,即连发码,可以通过统计连发码的次数来标记按键按下的长短/次数。

2、硬件连接

红外接收对应PB9,同时是通用定时器4的通道4,硬件连接图如下
基于stm32的红外遥控_第1张图片
3、代码

源码下载连接
链接:https://pan.baidu.com/s/1NfdaHaKhd-a5DgtYe_IC2g
提取码:22tk

你可能感兴趣的:(STM32)