提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、红外检测程序
  • 总结

前言

以下普通IO口不用IO口中断的红外线接收程序。


提示:以下是本篇文章正文内容,下面案例可供参考

一、红外检测程序

#define  IR  P01 //接收脚位定义u8  IR_Sign;
u8  IR_Mode;
u8  Time_100us;
u8  Time_20ms;
u8  Reload_T16;
u32 IR_Data;u8  i;
u32 data;
void    IR_Receive(void)
{switch(IR_Mode){case 0://初始等待起始码到来if(!IR){IR_Mode = 1;IR_Sign = 1;}else{IR_Mode = 0;}Time_20ms = 0;Time_100us = 0;break;case 1://判断起始码是否成立if(IR_Sign){if(IR)//等待高电平出现准备进入低电平检测{IR_Sign = 0;}}else{if(!IR){if(Time_100us >= 130 && Time_100us <= 140)//判断起始码的时间是否在(9ms+4.5ms)左右{IR_Mode = 2;//起始码正确,进入下个模式IR_Sign = 1;Time_20ms = 0;Time_100us = 0;i = 0;}else{IR_Mode = 0;//起始码错误,重新判断起始码}}}break;case 2://判断数据码0或1,并记录if(IR_Sign){if(IR)//等待高电平出现准备进入低电平检测{IR_Sign = 0;}}else{if(!IR){if(Time_100us >= 15)//判断数据码是1{IR_Mode = 2;IR_Sign = 1;data <<= 1;data++;Time_20ms = 0;Time_100us = 0;}else//判断数据码是0{IR_Mode = 2;IR_Sign = 1;data <<= 1;nop;Time_20ms = 0;Time_100us = 0;}i++;if(i==32)//数据全部接受完毕,进入下一个模式{IR_Mode = 3;}}}break;case 3:IR_Data = data;Uart0_Printf("IR_Data = %x.\n",IR_Data);IR_Mode = 0;break;}
}

总结

以上就是普通IO口红外线接收的程序。

普通IO口红外线接收(不用外部中断)相关推荐

  1. 笔记:STM32——IO口的复用功能外部中断

    在STM32里面一般有五组寄存器分别是A--E组,每组寄存器的端口基本都有复用功能,这样可以使得端口的不被浪费,而达到极致利用. 使用复用端口的时候需要打开AFIO的时钟才能使用IO口的复用端口.每个 ...

  2. STM32单片机(12) 红外信号接收解码(外部中断)

    [转载请注明出处:http://blog.csdn.net/leytton/article/details/38687537] 本程序主要利用外部中断,实现红外遥控器信号接收解码,并利用串口通信把编码 ...

  3. STM32CubeMX EC11旋转编码器开发心路历程(encode模式 外部中断模式 普通IO口模式 定时器模式探索)

    文章目录 ENCODE模式探索 普通IO口探索 定时器使用 外部中断探索 编码器开关的理解 最后的实现方案 这篇文章主要还是记录整个过程以及想法的不断改进,对于一些实际的操作还有代码,我准备都分开写到 ...

  4. nrf52840 gpiote如何配置中断输入_STM32第四章外部中断管理

    点击上方"果果小师弟",选择"置顶/星标公众号"干货福利,第一时间送达!STM32F4 的每个 IO 都可以作为外部中断的中断输入口,这点也是 STM32F4 ...

  5. STM32F1迷你板外部中断

    开始学习外部中断的基本知识 中断优先级分组管理 CortexM3内部支持256个中断,其中包含了 16 个内核中断和 240 个外部中断,并且具有 256 级的可编程中断设置.STM32F1系列有 8 ...

  6. hal库开启中断关中断_stm32的HAL库开发学习笔记之外部中断

    外部中断 中断线----EXTI线0~15(对应外部IO口的输入中断) 每个IO口都可以作为外部中断输入 每个中短线可以独立的配置触发方式(上升沿,下降沿,双边沿),触发/屏蔽,专用状态位. GPIO ...

  7. STM32之外部中断

    今天来说下外部中断EXTI 其实外部中断和我们的定时器中断都差不多,只不过定时器中断是利用内部的计数器来进行定时,从而产生定时中断,而外部中断的触发条件是来自于外部,当外部的信息引起了外部中断,那么就 ...

  8. STM32F4_外部中断详解(EXTI)

    目录 1. EXTI 是什么? 2. EXTI主要特性 3. EXTI框图 3.1 外部中断/事件线映射 4. EXTI寄存器 4.1 中断屏蔽寄存器 EXTI_IMR 4.2 事件屏蔽寄存器 EXT ...

  9. STM32——外部中断

    目录 外部中断简述 什么是外部中断 传统单片机与新型单片机外部中断区别 STM32外部中断请求 STM32中断线与IO口的对应 STM32 中断服务函数 外部中断与中断服务函数的对应 中断服务函数列表 ...

  10. STM32 中断原理及外部中断的实现

    STM32 中断原理及外部中断的实现 NVIC 中断优先级管理 中断寄存器 库函数配置 小结 STM32 外部中断 基础知识 库函数配置 外部中断配置示例 小结 内容较充实,作为个人的学习记录 NVI ...

最新文章

  1. C#怎么通过一个按钮Button,实现点击这个按钮可以打开一个文件或者文件夹?
  2. pandas将Series变成键值对
  3. Intellij Idea/Webstorm/Phpstorm 的高效快捷键
  4. [LeetCode]--63. Unique Paths II
  5. 几个最短路径算法Floyd、Dijkstra、Bellman-Ford、SPFA的比较
  6. Android开源库集锦
  7. centos安装python环境_Centos7 安装python3 环境 并使用pip安装docker-compose
  8. LayaAir Geolocation 获取地理位置
  9. 小任务之使用SVG画柱状图~
  10. 【MTSP】基于matlab GUI遗传算法求解多旅行商问题【含Matlab源码 935期】
  11. java 学生考勤系统(三、签到功能)
  12. 常用键盘ASCⅡ码,方便查阅
  13. 数据可视化技术有什么特点
  14. 光伏电站运维常见故障及处理汇总
  15. 用伪类添加翘边阴影::before和::after
  16. 车主委托过户和电子委托书
  17. 为什么要分库分表?一个业务场景来理顺它!
  18. Revit建模如何一键“生成场地和基础垫层”
  19. 可口可乐市场调查失败的原因_可口可乐失败案例
  20. python--敲击木鱼积累功德小项目

热门文章

  1. 2020.12.28Excel(数字到BZZ)
  2. 解读swarm最新资讯,主网8.2号开始产BZZ
  3. linux系统可以下steam吗,linux – 是否可以使用optirun运行Steam游戏?
  4. 修改WordPress网站默认wp-content/uploads上传文件路径
  5. SpringBoot从入门到精通二(SpringBoot整合myBatis的两种方式)
  6. html-box-sizing
  7. pm runtime
  8. oracle序列建同义词,oracle序列创建同义词
  9. 英语语法之形容词与副词
  10. 计算机技术对艺术设计的影响,计算机对艺术设计有何影响