相关文章:http://blog.csdn.net/zhangxuechao_/article/details/75039906

举例

u8 ir_tick() //记录高电平时间
{
u8 i = 0; while(ir_in == 1)
{
i++;
if(i >= 250)
{
break;
}
delay_us(20); //一次循环20um
} return i;
} void EXTI15_10_IRQHandler()
{
u8 i = 0;
u32 ir = 0;
u8 ok = 0;
u8 tick;
u8 data; if(EXTI_GetITStatus(EXTI_Line15) == SET)
{
led1 = ~led1; while(1)
{
if(ir_in == 1)
{
tick = ir_tick(); if(tick >= 250) //错误码
{
break;
}
else if((tick >= 200) && (tick < 250)) //起始码
{
ok = 1;
continue;
}
else if((tick >= 25) && (tick <= 40)) //0
{
data = 0;
}
else if((tick >= 75) && (tick <= 90)) //1
{
data = 1;
}
else
{
break;
} if(ok == 1)
{
ir <<= 1;
ir |= data;
} if(i++ >= 32)
{
break;
}
}
} if(ok == 1)
{
printf("ir %08x\n", ir);
}
} EXTI_ClearITPendingBit(EXTI_Line15);
} void IR_init()
{
GPIO_InitTypeDef gpio =
{
GPIO_Pin_15,
GPIO_Speed_50MHz,
GPIO_Mode_IPU
}; EXTI_InitTypeDef exti =
{
EXTI_Line15,
EXTI_Mode_Interrupt,
EXTI_Trigger_Falling,
ENABLE
}; NVIC_InitTypeDef nvic =
{
EXTI15_10_IRQn,
2,
2,
ENABLE
}; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOG | RCC_APB2Periph_AFIO, ENABLE); GPIO_Init(GPIOG, &gpio); GPIO_EXTILineConfig(GPIO_PortSourceGPIOG, GPIO_PinSource15); NVIC_Init(&nvic); EXTI_Init(&exti);
}

stm32 红外的更多相关文章

  1. 基于Arduino、STM32进行红外遥控信号接收

    catalogue . 遥控器原理简介 . 红外遥控原理 . 常见红外遥控器红外线信号传输协议 . 遙控器的发展 . 实验过程 . 攻击面 . 基于STM32实现红外信号解码 1. 遥控器原理简介 0 ...

  2. 基于STM32的学习型通用红外遥控设备的设计实现(三)

    CPU: STM32 调试平台: STM32F103ZET和STM32F103VBT 软件平台: Keil uVision4 电路设计: Altium Designer v6.9 http://blo ...

  3. stm32与红外遥控器(NEC协议)

    1.器件简介 本次测试采用R903V1红外接收头与NEC协议的红外遥控器,接收头原理图如下: 器件的供电电压VCC在2.7V~5.5V之间,输出电压VOUT正常在0.2v ~(VCC-0.3±0.2) ...

  4. 基于STM32单片机的简单红外循迹的实现

    初步接触STM32,采用两路红外传感器实现小车循迹,稍显简略,如有不好的地方,欢迎大家指点改正

  5. 基于STM32的红外遥控重点解析

    本文有两个内容:一.红外遥控协议的的讲解:二.解码程序解析(参考正点原子的代码) 红外的介绍.优点.缺点就不给大家说了,进入正题 一.红外遥控协议的的讲解 红外遥控的编码目前广泛使用的是:NEC Pr ...

  6. STM32之红外遥控信号自学习实现

    一.序言 很早前就想实现这个红外遥控自学习的这个实验,用于来自己控制房子里如空调等红外遥控设备的自动化,NEC的标准到具体的产品上可能就被厂家定义为不一样了,所以自学习就应该是接收到什么就发送什么,不 ...

  7. STM32库函数编程、Keli/MDK、stm32f103zet6

    catalogue . Cortex-M3地址空间 . 基于标准外设库的软件开发 . 基于固件库实现串口输出(发送)程序 . 红外接收实验 . 深入分析流水灯例程 . GPIO再举例之按键实验 . 串 ...

  8. STM32学习笔记——USART串口

    转载自:http://www.cnblogs.com/microxiami/p/3752715.html 一.USART简介 通用同步异步收发器(USART)提供了一种灵活的方法与使用工业标准NRZ异 ...

  9. STM32 控制红外线收发

    买了一块STM32的板子,这次需要将IR的code移植到STM32上面,因为STM32成本比树莓派低得多,所以 一些简单的外设挂在STM32上就行了. 我买的板子的型号是STM32F103C8T6,价 ...

随机推荐

  1. Greenwich.SR2版本的Spring Cloud Config+BUS实例

    Spring Cloud Config统一的配置中心同注册中心Eureka一样,也分服务端和客户端.服务端用来保存配置信息,客户端用来读取.它的优势是基于Git仓库,支持多环境.多分支配置.动态刷新. ...

  2. 阶段5 3.微服务项目【学成在线】_day18 用户授权_04-方法授权-方法授权实现

    2.3 方法授权实现 2.3.1资源服务添加授权控制 1.要想在资源服务使用方法授权,首先在资源服务配置授权控制 1)添加spring-cloud-starter-oauth2依赖. 2)拷贝授权配置 ...

  3. delphi TClientDatset资料

    第十一章 TClientDataSet 与TTable.TQuery一样,TClientDataSet也是从TDataSet继承下来的,它通常用于多层体系结构的客户端.TClientDataSet最大 ...

  4. Linux下-bash: Permission denied 或者 sudo: command not found 错误

    有时候执行一个脚本或者运行一个可执行文件时,如执行脚本./foo.sh,会报错-bash: ./foo.sh: Permission denied,你会再试sudo ./foo.sh,发现继续报错su ...

  5. Java使用Apache Commons Exec运行本地命令行命令

    首先在pom.xml中添加Apache Commons Exec的Maven坐标: <!-- https://mvnrepository.com/artifact/org.apache.comm ...

  6. 树莓派连接显示器后设置ssh服务开机自动开启

    进入命令行,然后执行: cd /boot sudo touch ssh sudo restart -r now 然后就重新启动了,重启好了会有依据提示. 然后可以输入ssh localhost进行一下 ...

  7. charles 偏好设置

    本文参考:charles 偏好设置 charles 偏好设置  偏好设置,注意作用如下 用户界面 视图 启动设置 警告设置 视图选项 头和主体一起查看 请求和响应页查看 结构试图布局 序列试图布局 显 ...

  8. 不用第三方软件–一键开关笔记本电脑wifi热点的批处理

    笔者有点洁癖啊,很强烈抵制那些辣鸡流氓软件的.用笔记本开个wifi还要装东西,搞不好给我塞一堆东西,我勒个fdkshgkhalsh,. 下面就是集设置密码与开关wifi于一身的bat,这个批处理能简化 ...

  9. 解决用cmd编译运行java时的错误

    最近上java课程,平时都是用IDEA打代码的,但老师要我们用cmd编译运行,于是在IDEA撸完代码用cmd编译,但却老是编译不出来,有很多乱码.,提示着“错误:GBK的不可映射字符”,又试了几次,着 ...

  10. sql语句中,取得schema中的所有表信息及表的定义结构

    postgressql下'検索スキーマの中で.全てテーブルselect tablename from pg_tables where schemaname='test' mysql下'検索スキーマの中 ...