[color=rgba(0, 0, 0, 0.9)]红外解码在日常使用也是很高的,红外协议如下图所示,有不明白的可以搜索一下相关协议介绍;这解码思路是个很适合波形解码,只要是类似的都可以用,比如ASK解码、无线解码等,配合相关协议就可以修改使用,红外具体解码过程请看驱动源码! [color=rgba(0, 0, if( !flag ) { switch( UncorkState ) { case 0: //9ms低电平 if( !GPIO_GetInputStatus(Uncork_GPIO) ) { Num++; } else { if( Num>=80 && Num<=100 ) { UncorkState = 1; } else { UncorkState = 0; } Num = 0; } break; case 1: //4.5ms的高电平 if( GPIO_GetInputStatus(Uncork_GPIO) ) { Num++; } else { if( Num>=30 && Num<=50 ) { UncorkState = 2; NumBit = 0; Data = 0; } else { UncorkState = 0; } Num = 0; } break; case 2: //解析数据 if( GPIO_GetInputStatus(Uncork_GPIO) ) { Num++; } else { if( Num>=5 ) { NumBit++; Data = Data>>1; if( Num >= 9 ) { Data = Data|0x80; } Num = 0; if( NumBit == 8 ) { UncorkData[0] = Data; Data = 0; } if( NumBit == 16 ) { UncorkData[1] = Data; Data = 0; } if( NumBit == 24 ) { UncorkData[2] = Data; Data = 0; } if( NumBit == 32 ) { UncorkData[3] = Data; Data = 0; UncorkState = 0; if( (UncorkData[0] ^ UncorkData[1]) == 0xff); { if( (UncorkData[2] ^ UncorkData[3] ) == 0xff); { flag = 0xff; } } } } else { UncorkState = 0; Num = 0; } } break; default: break; } }} |
/1
关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )
GMT+8, 2025-10-28 00:30 , Processed in 0.140625 second(s), 28 queries , Gzip On.
地址:深圳市南山区科技生态园2栋A座805 电话:19926409050