相关文章: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. flutter showDatePicker显示中文日期_Flutter时间控件显示中文

    flutter showDatePicker showTimePicker显示中文日期 1.配置flutter_localizations依赖 找到pubspec.yaml配置flutter_loca ...

  2. React——相关工具概述

    Create a New React App Use an integrated toolchain for the best user and developer experience. This ...

  3. 不是springboot项目怎么使用内置tomcat

    不是springboot项目怎么使用内置tomcat   解决方法: 1.pom.xml中添加以下依赖 <properties>  <tomcat.version>8.5.23 ...

  4. 怎样创建一个OpenStack官方账号?

    OpenStack官方账号分两种: 社区成员 (Community Member) 基金会成员 (Foundation Member) 基金会成员比社区成员的权利多一点: 允许提交峰会议题 允许对峰会 ...

  5. 使用ClientScriptManager向客户端注册脚本

    ClientScriptManager在非异步(就是说非AJAX)环境下使用的.如果要在异步环境下注册脚本应该使用ScriptManager的静态方法来注册(ScriptManager兼容异步于非异步 ...

  6. 通过Httpclient工具类,实现接口请求

    package luckyweb.seagull.util; import org.apache.http.NameValuePair; import org.apache.http.client.e ...

  7. 【数据库开发】MySQL命令大全

    1.连接Mysql 格式: mysql -h主机地址 -u用户名 -p用户密码1.连接到本机上的MYSQL. 首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root ...

  8. utf8 unicode 编码互转

    static function utf8_to_unicode($c) { switch(strlen($c)) { case 1: return ord($c); case 2: $n = (ord ...

  9. 基本 Java Bean

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...

  10. hdu 1209 Clock

    Clock Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submi ...