左脸长痣代表什么| 益生菌什么时间段吃效果好| 以纯属于什么档次| 故宫什么时候闭馆| 卤水是什么成分| 磨破皮了涂什么药| zro是什么牌子| 农历六月十八是什么日子| 医院手环颜色代表什么| 农历5月25日是什么星座| 胩是什么意思| 鼠的三合生肖是什么| 午餐肉炒什么菜好吃| 血便是什么原因引起的| 吐白沫是什么原因| 白鸭是什么鸭| 针眼长什么样子图片| 是代表什么意思| 翼龙吃什么| 控告是什么意思| 陈赫火锅店叫什么名字| 包饺子是什么意思| 经期量少吃什么来排血| 兔子五行属什么| 榄仁是什么| 佳人是什么生肖| 斑鸠是什么意思| 公安局局长什么级别| 黍是什么意思| 异什么同什么| 孕妇吃什么鱼| 鱼刺卡喉咙挂什么科| 6.24什么星座| 感冒喝什么粥| 扁桃体肿大是什么原因引起的| 阿尔兹海默症挂什么科| 脚底出汗什么原因| 肺部挂什么科| 宫颈活检cin1级是什么意思| 氢什么意思| 画龙点睛指什么生肖| 壶嘴为什么不能对着人| 骨盐量偏低是什么意思| 礼佛是什么意思| 辣椒含有什么维生素| 左撇子是什么意思| 尿路感染是什么症状| 做完胃镜可以吃什么| 摸不到心跳是什么情况| 员级职称是什么意思| 脾虚湿盛吃什么药| 巨蟹男喜欢什么类型的女生| 静脉曲张看什么科| 脚底拔罐对女人有什么好处| 手麻脚麻是什么原因引起的| 为什么尿液一直是黄的| 肤色暗黄适合穿什么颜色的衣服| 肠道感染是什么原因引起的| 双肺纹理增重是什么意思| 观音位置摆放什么方向| 女性阴道痒是什么原因| 钛对人体有什么好处| 逸搏心律什么意思| 反应性增生是什么意思| ap手表是什么牌子| dl什么意思| 什么的眉头| 怕什么来什么| 凉烟都有什么牌子| 喝什么降火| 牛郎是什么意思| 经常感冒吃什么提高免疫力| 玉米排骨汤放什么调料| 传销是什么意思| 孕妇吃核桃对胎儿有什么好处| 73岁属什么| 纸可以折什么| 欧阳修字什么| 羊水是什么颜色的| 梦见刨红薯是什么意思| gcp是什么意思| 咖啡为什么提神| 晚上多梦是什么原因| 弱肉强食什么意思| 肛门长期瘙痒是什么原因| 跖疣用什么药| 隔阂是什么意思| 心血虚吃什么中成药| 红豆有什么功效和作用| 晚上手脚发热是什么原因| 胃痛怎么办吃什么药| 全身痒是什么病的前兆| rds医学上什么意思| 42天产后复查都查什么| 喘不上来气是什么原因| 颈椎疼挂什么科| median什么意思| 什么是滑精| 宁字属于五行属什么| 汉防己甲素片治什么病| 六亲缘浅是什么意思| 自由基是什么意思| 黄油是什么意思| 眼睛痛吃什么药好得快| 女人带貔貅有什么讲究| 宫颈多发纳囊是什么病| 子宫内膜2mm说明什么| X-Ray什么意思| 93年鸡五行属什么| 吃什么流产最快| 嗓子疼吃什么药见效最快| 葡萄糖偏低是什么意思| 青柠是什么水果| 什么样的孙悟空| 吃什么降血脂最快最好| 辅酶q10是什么| 颈椎头晕吃点什么药| 五花肉炒什么配菜好吃| 宽宽的什么填空| 熟地有什么功效| 薄熙来为什么被抓| 打脸是什么意思| 乏力是什么症状| 6月1是什么星座| 格调是什么意思| 什么的挑选| 早上做什么运动最好| 梦见结婚是什么意思| 乌龟死了是什么样子| 西红柿生吃有什么好处| 白术有什么作用| 翻盘是什么意思| 咳嗽是什么原因| 眼角膜脱落什么症状| 阿修罗道是什么意思| 做梦梦到大蟒蛇是什么意思| 脑管瘤的症状是什么| 什么是科学| n代表什么| 异常灌注是什么意思| 下面痒用什么清洗最好| 午睡后头疼是什么原因| 正常白带是什么颜色| 净值是什么| 睾丸是什么| 做脑ct挂什么科| 拉肚子想吐是什么原因| 十多块钱的烟什么好抽| 甲苯对人体有什么危害| 上火了吃什么药好| 粑粑黑色是什么原因| 国字脸适合什么发型| 约稿是什么意思| 乌龟属于什么动物| 什么东西最伤肾| 陌陌是干什么的| 一条什么| 腱鞘炎吃什么药最好| 开是什么生肖| 印度为什么叫三哥| 范字五行属什么| 老娘们是什么意思| 紫外线过敏用什么药膏| 外阴白斑是什么病| 冻干粉是什么| 志心皈命礼是什么意思| 什么东西吃了补肾| 什么叫一个周期| 体力不支是什么意思| 死缓是什么意思| 双相情感障碍是什么| 送父亲什么礼物好| 张良属什么生肖| 吃什么能提高记忆力| 夏天有什么蔬菜| 口腔异味吃什么药| 桑葚补什么| 今天是什么生肖日| 什么运动可以长高| 逍遥丸的功效和作用是什么| 最高学历是什么| 龙配什么生肖最好| 究竟涅盘是什么意思| 下象棋有什么好处| 脚麻是什么病的前兆| 梦见自己拉了很多屎是什么意思| 黄色配什么颜色| 怀孕小肚子疼是什么原因| 孕妇为什么要躲着白事| 臭屁是什么意思| 什么病不能吃松花粉| 发量少适合什么发型| 头发容易油是什么原因| 风热感冒是什么意思| 606是什么意思| 什么是hpv| 双子座的幸运色是什么| 598是什么意思| dha什么牌子最好最安全| 四六风是什么病| 老是叹气是什么原因| 长期湿热会引起什么病| 成人大便绿色是什么原因| 手麻吃什么药效果好| 指甲盖发紫是什么原因| 慢性咽喉炎吃什么药好| 翊什么意思| 肺部钙化灶是什么意思| 皮脂腺囊肿是什么原因引起的| 嘴唇发白什么原因| 气胸是什么症状| 胆结石吃什么药可以化掉结石| 故作矜持的意思是什么| 尿素氮高吃什么药| 一个口一个女念什么| 财评是什么意思| 14岁属什么| 护士资格证有什么用| 扁平疣是什么原因长出来的| 冠状动脉钙化是什么意思| 你的名字讲的什么故事| 谨记教诲是什么意思| 什么是无精症| mews评分是什么意思| 胃痛按什么部位可以缓解疼痛| 农历八月十三是什么星座| 小鸟吃什么食物| 记仇的人是什么性格| 84年是什么命| 山楂和什么泡水喝降血压| 伤口撒什么药粉好得快| 丝状疣挂什么科| 吃什么东西补气血| 李晨的爷爷叫什么| 肺囊肿是什么病严重吗| 姨妈期间可以吃什么水果| mol是什么意思| 属牛的婚配什么属相最好| 腰间盘突出是什么原因引起的| 宫颈囊肿是什么意思| 腱鞘炎是什么病| 药流后吃什么消炎药比较好| 3月什么星座| 一心一意什么意思| 维纳斯是什么意思| 为什么要做羊水穿刺检查| 睡不着吃什么药最有效| 6岁儿童为什么会长腿毛| nse是什么意思| 右侧肋骨下面是什么器官| 疱疹吃什么药见效快| 李连杰是什么国籍| 治飞蚊症用什么眼药水| 血糖偏高能吃什么水果| 指甲开裂是什么原因| anello是什么牌子| 东吴是现在的什么地方| 腿上有淤青是什么原因| via什么意思| 月经期不能吃什么水果| 佑五行属什么| 胃火旺吃什么水果| 计划生育什么时候开始的| 少阳病是什么意思| 百度
这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 ? 论坛首页 ? 嵌入式开发 ? STM32 ? 【原创】复习红外传感器心得--from棚

共1条 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

}

三、感悟

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



共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]
孩子张嘴睡觉是什么原因 为什么缺钾 陀飞轮是什么意思 头皮很痒是什么原因 总胆红素高是什么意思
7.8什么星座 心率过快吃什么药 ITIB跟薇娅什么关系 有什么方法可以快速入睡 吃什么药可以推迟月经
多才多艺是什么生肖 八月节是什么节 头皮屑结块是什么原因 鼻梁有横纹是什么原因 吃什么东西可以长高
晚上做梦掉牙有什么预兆 儿童说话晚去医院挂什么科 牙齿黄用什么牙膏 气节是什么意思 比基尼是什么
近视和远视有什么区别xscnpatent.com 情人眼里出西施是什么心理效应wzqsfys.com 两个脚脖子肿什么原因hcv7jop9ns9r.cn 鹤立鸡群代表什么生肖hcv8jop6ns7r.cn 千里单骑是什么生肖xscnpatent.com
昱念什么imcecn.com 大圣是什么生肖hcv8jop9ns9r.cn 冰种翡翠属于什么档次hcv8jop9ns0r.cn 打氨基酸点滴有什么好处和害处xinmaowt.com 脖子上长疣是什么原因hcv8jop5ns6r.cn
保守是什么意思wzqsfys.com 吃避孕药对身体有什么影响hcv8jop2ns4r.cn 侏儒症是什么原因引起的helloaicloud.com 懿读什么hcv7jop4ns5r.cn 张若昀原名叫什么hcv7jop5ns5r.cn
血管瘤是什么样子的hcv9jop0ns5r.cn 南京有什么好玩的地方hcv9jop8ns2r.cn 头总是昏昏沉沉的是什么原因hcv8jop8ns9r.cn 农历十月十八是什么星座zsyouku.com 很man是什么意思onlinewuye.com
百度