因果关系是什么意思| 煎牛排用什么锅最好| 恩泽是什么意思| 怀孕孕酮低吃什么补得快| 吃什么东西排酸最快| 身上出汗多是什么原因| 报考军校需要什么条件| 大云是什么| 梦到女朋友出轨是什么意思| 葡萄球菌是什么| 洋葱可以炒什么| 月经量多是什么原因导致的| 老流口水是什么原因| 雅典娜是什么神| 颈静脉怒张见于什么病| 先明后不争什么意思| 熊猫血型是什么血型| 贵人多忘事什么意思| 姜为什么不能晚上吃| 的近义词是什么| 高回声是什么意思| 慷慨什么意思| 六月六吃什么| 甲状腺是什么意思| 知己什么意思| 孔子是什么家| 文曲星下凡是什么意思| 验孕棒两条杠什么意思| 便血鲜红色无疼痛是什么原因| 为什么会有同性恋| 中医学是什么| 风花雪月什么意思| 什么食物降血压| 小孩子手脚脱皮是什么原因| 凯乐石属于什么档次| 狠人是什么意思| 胃动力不足是什么原因造成的| 皮肤黑穿什么颜色好看| 吃干饭是什么意思| 什么映雪| 驴肉不能和什么一起吃| 吃葱有什么好处和坏处| 小孩腿疼膝盖疼可能是什么原因| 6月18日什么星座| 梦见房屋倒塌是什么征兆| 口腔溃疡一直不好是什么原因| 什么是玻尿酸| 什么是灌肠| 补钙最好的食物是什么| 什么是取保候审| 吃什么东西养胃最有效| 不痛经说明什么| 缪斯是什么意思| 脑血管堵塞吃什么药最好| 六个点是什么意思| 九层塔是什么| 神是什么偏旁| 打2个喷嚏代表什么| 满载而归的载是什么意思| 中旬是什么意思| 扳机是什么意思| 小孩嘴唇发白是什么原因| 氟比洛芬是什么药| 脑梗会引起什么症状| 1.4是什么星座| 肚子中间疼是什么原因| 尿胆红素高是什么原因| 孩子头晕挂什么科| 润字五行属什么| w是什么意思| 身无什么| 胃酸过多吃什么药| 白羊座的幸运色是什么颜色| 介入科主要看什么病| 雍正叫什么名字| 做梦梦到很多蛇是什么意思| 猪脚焖什么好吃| 眼睛肿什么原因| 滑膜炎用什么膏药好| 肌肉萎缩看什么科| 移花接木的意思是什么| 为什么肝最怕吃花生| 过路车是什么意思| 12月11日什么星座| 男性粘液丝高什么原因| 男人射精什么感觉| 副高是什么职称| 小山羊是什么病| 肾结石是什么症状| 一直流鼻血是什么原因| 随波逐流什么意思| b细胞淋巴肿瘤是一种什么病| 为什么女追男没好下场| 7大营养素是什么| 牙膏洗脸有什么好处和坏处| 脚心热吃什么药| 中国中铁是做什么的| 三里屯有什么好玩的地方| 宝宝乳糖不耐受喝什么奶粉比较好| other是什么品牌| 女人什么时候最想要| ph值偏高是什么意思| 小孩记忆力差需要补充什么营养| 阑尾在什么位置| 早上四点是什么时辰| 女孩子学什么专业| 爱长闭口用什么护肤品| wl是什么意思| 晚上一直做梦是什么原因引起的| 禄蠹是什么意思| 黄字五行属什么| 哮喘病应该注意什么| 吃什么可以去湿气| 什么胆什么心| 智能手环什么品牌好| 凯格尔运动是什么| 误区是什么意思| 女人喝劲酒有什么好处| 奥利司他排油是什么油| 什么叫椎间盘膨出| 梦见头上长虱子是什么意思| 门特是什么| 属牛男最在乎女人什么| 肠胃不好吃什么| 知柏地黄丸治疗什么病| 梦见自己准备结婚是什么意思| 扁桃体长什么样子| 犹太人是什么意思| 带手串有什么讲究| 尿味大是什么原因| 月经期间不能吃什么| 排卵期身体有什么症状表现吗| 胆固醇高是什么病| 宁静什么意思| 不约而至是什么意思| 总有眼屎是什么原因| 不可以加什么偏旁| lord什么意思| 肌酐高吃什么食物| 发瘟是什么意思| 软是什么意思| 高血压高血糖挂什么科| 跳空缺口是什么意思| 复学需要什么手续| 淋巴细胞百分比偏低是什么意思| 检查过敏源挂什么科| 金融bp是什么意思| 检查乳腺做什么检查| 心火旺失眠吃什么药| 舒畅的舅舅是做什么的| 腰间盘突出是什么症状| 九月九日是什么日子| 喝隔夜茶有什么好处和坏处| 唐朝以后是什么朝代| 格林是什么意思| 1月10号是什么星座| 吃了避孕药不能吃什么东西| 62年的虎是什么命| 尿检粘液丝高什么意思| 圆寂为什么坐着就死了| 红霉素软膏治什么病| 检查乳腺做什么检查| 经常腿抽筋是什么原因| 情绪不稳定是什么原因| 滑石粉有什么作用| 有什么不能说| 下肢静脉曲张是什么原因引起的| 挫伤用什么药| 为什么上小厕会有刺痛感| 大姑姐最怕弟媳什么| opv是什么疫苗| 女人梦见龙是什么征兆| 发腮是什么意思| 法兰绒是什么面料| 一什么沙发| 长期耳鸣是什么原因| 发什么什么大| 因果关系是什么意思| 高血压饮食上注意什么| 梦见别人掉牙齿是什么征兆| 什么行业赚钱| 乔丹是什么品牌| 轻微骨裂了有什么表现| 肾阳虚和肾阴虚有什么区别症状| crp高是什么意思| 宫外孕出血是什么颜色| 血淋是什么意思| 澳门是什么时候回归的| 颈动脉彩超挂什么科| 蚊虫叮咬过敏用什么药| 做放疗的人吃什么好| 母是什么结构| 什么样的女人招人嫉妒| 承德有什么大学| 粉尘螨过敏是什么意思| 质子是什么| 碗打碎了预示着什么| 做梦翻车了什么预兆| 吃什么补钾最快| 喝柠檬水对身体有什么好处| 小狗什么时候可以洗澡| 白斑不能吃什么| 维和部队是干什么的| 叫花子是什么意思| 伤风是什么意思| 绿豆不能和什么同吃| metoo是什么意思| 动脉硬化吃什么可以软化血管| 咸鸭蛋不能和什么一起吃| 阴道变黑是什么原因| 垂询是什么意思| 男人吃香菜有什么好处| 什么叫类风湿| 男性经常手淫有什么危害| 1972属什么生肖| 什么时间艾灸效果最好| 吃什么清肝火最快| 死是什么意思| 腻歪是什么意思| 嗓子疼喝什么药| 起死回生是什么生肖| 财务是什么意思| 梦见自己理发是什么意思| 什么情况要打破伤风| 多吃蒜有什么好处和坏处| 什么叫磁场| 舌头肿大是什么原因引起的| 业障什么意思| 肚子为什么会疼| 白月光是什么意思| 来月经可以吃什么水果| 二建什么时候考试| 为什么会尿床| 雌二醇是什么意思| 卡其色裙子配什么颜色上衣好看| mk属于什么档次| 喉咙发痒吃什么药| 脂溢性皮炎用什么药| 血压突然升高是什么原因| 小肚子疼挂什么科| 湿疹涂什么药| 芈月是秦始皇的什么人| 上午11点是什么时辰| 爱叶有什么作用和功效| 维生素b补什么的| 老白茶是什么茶| 一个入一个肉念什么| 总蛋白低是什么意思| 借刀杀人是什么生肖| 老是什么意思| aigle是什么牌子| 男鼠配什么生肖最好| 用一什么就什么造句| 一月来两次月经是什么原因| nylon是什么面料成分| 娥皇女英是什么意思| 属鼠是什么命| 匹维溴铵片治什么病| 小孩睡觉出汗是什么原因| 世界上最难的字是什么| 属猪的贵人属相是什么| 中医师承是什么意思| 1213是什么日子| 吐信子是什么意思啊| 百度
这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 ? 论坛首页 ? 嵌入式开发 ? STM32 ? 【原创】复习红外传感器心得--from棚

共2条 1/1 1 跳转至

【原创】复习红外传感器心得--from棚

工程师
2025-08-04 22:26:15     打赏
百度 比如人口多肯定热闹,但是因为人口多也造成了资源的紧张,地里的粮食不够吃,山上的柴火不够烧,因而滥垦滥伐的现象普遍,资源紧张和贫困很容易导致村民之间关系紧张,甚至亲戚邻里之间积怨难以化解。

当时学51的时候红外遥控器的解码过程一直让我很迷惑,什么状态机什么标志位总是很迷惑。想了很长时间还是一知半解。知道最近又重温了一边我才完全明白了以下这段遥控器解码代码的妙处:

一、基础原理

图片1.png

图片2.png

原理很简单,但困扰我很长时间的一直是如何进行解码。

 

 

 

 

二、解码代码分析

大致思路通过一个变量设置三种状态0(空闲状态),1(检测开始和重发信号),2检测到(开始信号后开始发送字节),接下来来看代码:

 

 

状态0:

void Int0_Routine(void) interrupt 0

{

if(IR_State==0)    //状态0,空闲状态

{

Timer0_SetCounter(0); //定时计数器清0

Timer0_Run(1);   //定时器启动

IR_State=1;    //置状态为1

}

 

这一部分外部中断的下降沿配置就不用多说。0状态的作用就好比中段来了进行初始化。这里定时器的作用是为后续检测相邻下降沿电平时长开始的计时。

 

状态1:

1. 开始:

else if(IR_State==1)  //状态1,等待Start信号或Repeat信号

{

IR_Time=Timer0_GetCounter(); //获取上一次中断到此次中断的时间

Timer0_SetCounter(0); //定时计数器清0

 

通过读取这两处下降沿之间的时间;

图片3.png

//如果计时为13.5ms,则接收到了Start信号(判定值在12MHz晶振下为13500,在11.0592MHz晶振下为12442

if(IR_Time>12442-500 && IR_Time<12442+500)

{

IR_State=2;   //置状态为2

}

 


 

 

1. 重发:

这个部分当时没想得很明白因为被当时被中断搞蒙了,现在来看不过就是如果一直按着不松手就就一直会在状态0和状态1之间重复。


//如果计时为11.25ms,则接收到了Repeat信号(判定值在12MHz晶振下为11250,在11.0592MHz晶振下为10368

else if(IR_Time>10368-500 && IR_Time<10368+500)

{

IR_RepeatFlag=1; //置收到连发帧标志位为1

Timer0_Run(0);  //定时器停止

IR_State=0;   //置状态为0

}

 

再通过;

/**

  * @brief  红外遥控获取收到连发帧标志位

  * @param  

  * @retval 是否收到连发帧,1为收到,0为未收到

  */

unsigned char IR_GetRepeatFlag(void)

{

if(IR_RepeatFlag)

{

IR_RepeatFlag=0;

return 1;

}

return 0;

}

让其一直返回1

最后在主函数中;

 

if(IR_GetDataFlag() || IR_GetRepeatFlag()) //如果收到数据帧或者收到连发帧

来进行操作。

 

当时没注意到还会有发错的情况,学习还得是温故知新,才能查漏补缺锻炼自己的思维。

 

else     //接收出错

{

IR_State=1;   //置状态为1

}

}

状态2;

状态2在经过状态1开始指令后,接收数据的方法更是有很多细节

else if(IR_State==2)  //状态2,接收数据

{

IR_Time=Timer0_GetCounter(); //获取上一次中断到此次中断的时间

Timer0_SetCounter(0); //定时计数器清0

//如果计时为1120us,则接收到了数据0(判定值在12MHz晶振下为1120,在11.0592MHz晶振下为1032

if(IR_Time>1032-500 && IR_Time<1032+500)

{

IR_Data[IR_pData/8]&=~(0x01<<(IR_pData%8)); //数据对应位清0

IR_pData++;   //数据位置指针自增

}

//如果计时为2250us,则接收到了数据1(判定值在12MHz晶振下为2250,在11.0592MHz晶振下为2074

else if(IR_Time>2074-500 && IR_Time<2074+500)

{

IR_Data[IR_pData/8]|=(0x01<<(IR_pData%8)); //数据对应位置1

IR_pData++;   //数据位置指针自增

}

 

 

但是这个状态最有意思的还是这几行代码;

IR_Data[IR_pData/8]&=~(0x01<<(IR_pData%8)); //数据对应位清0

IR_pData++;   //数据位置指针自增

IR_Data[IR_pData/8]|=(0x01<<(IR_pData%8)); //数据对应位置1

IR_pData++;   //数据位置指针自增

接下来我们把它分开细细品味;

图片4.png

接收出错重新开始:

else     //接收出错

{

IR_pData=0;   //数据位置指针清0

IR_State=1;   //置状态为1

}

 

 

if(IR_pData>=32)  //如果接收到了32位数据

{

IR_pData=0;   //数据位置指针清0

if((IR_Data[0]==~IR_Data[1]) && (IR_Data[2]==~IR_Data[3])) //数据验证

图片5.png

{

IR_Address=IR_Data[0]; //转存数据

IR_Command=IR_Data[2];

IR_DataFlag=1; //置收到连发帧标志位为1

}

Timer0_Run(0);  //定时器停止

IR_State=0;   //置状态为0

}

三、感悟

以上是我心血来潮对这段代码回顾的浅浅看法,其实我是想要通过自己看看能不能想出来更好的解决方法,尽管想了很长时间但是因为知识的欠缺思维能力还没有得到很好的锻炼暂时写不出来自己的方法,但是我认识到温故知新的重要性,能让我收获很多很多。不断提升自己不积硅步,无以至千里。开学了好在课排的不是很满又该全身心投入进去学习咯!



专家
2025-08-04 20:10:42     打赏
2楼

感谢分享


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]
艾滋病是什么 辛未日五行属什么 先入为主是什么意思 彬字五行属什么 是什么结构
梨子是什么季节的水果 金鱼吃什么食物 白羊男喜欢什么样的女生 穹隆什么意思 手脚冰冷是什么原因
什么东西解辣 频繁打嗝是什么原因 直男什么意思 血沉是查什么病的 宝路华手表什么档次
为什么左手会发麻 宅男是什么意思 手发抖是什么病的先兆 口炎是什么字 德国什么东西值得买
楠字取名有什么寓意hcv8jop8ns1r.cn 黑色柳丁是什么意思hcv9jop6ns5r.cn 西瓜什么时候种hcv8jop0ns8r.cn 蚂蚁上树什么姿势hcv9jop6ns0r.cn 为什么总是犯困想睡觉hcv9jop4ns7r.cn
尿道口痛什么原因hcv9jop0ns0r.cn 女生什么时候是安全期hcv9jop0ns9r.cn 什么的故事填词语hcv9jop6ns8r.cn 1992年属猴的是什么命hcv8jop6ns4r.cn 等离子体是什么hcv8jop7ns2r.cn
乡和镇有什么区别hcv7jop5ns6r.cn 头发厚适合剪什么发型hcv8jop8ns3r.cn 枸杞子泡茶喝有什么好处hcv7jop9ns9r.cn 黄茶是什么茶hlguo.com 牛黄清心丸治什么病imcecn.com
心神不宁是什么意思hcv8jop4ns0r.cn 麻是什么面料hcv8jop5ns4r.cn 同房什么感觉hcv8jop7ns3r.cn 围子是什么动物hcv9jop6ns6r.cn 闯空门什么意思hcv9jop3ns2r.cn
百度