红外控制实验

有一份《红外NEC协议编码说明》,非常清楚的描述了红外NEC码的格式。如下图:

红色为前导码。接下来为32位的数据。包括地址/地址反码/数据/数据反码。后面为重复码,就是你一直按着遥控器,他就会发送重复码。

回到物理层:560us低/560us高------bit0      560us低/1690us高------bit1

 

思考:关键是识别高电平的长度,来区分前导码,逻辑1和0。自然想到了STM32的输入捕获的功能。

 

红外控制实验_第1张图片

    使能两个中断,一个溢出中断,一个捕获中断,溢出中断的时间设置的长一点,识别码的长度的时候不进入,至少要大于4.5ms。

  通过捕获中断,来识别不同的码,获得前导码标志,以及后面的32bit的数据。 通过溢出中断,来判断重复按键的次数。

     最后再搞一个函数,用来判断这个32bit的数据是否有效,就是反码的比较,返回命令值。

 

你可能感兴趣的:(红外控制实验)