stm32 红外
来源:互联网 发布:音乐合成软件 编辑:程序博客网 时间:2024/05/16 01:35
相关文章:
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);}
阅读全文
1 0
- stm32 红外
- 【STM32】STM32之红外接收
- STM32红外的实现
- STM32红外的实现
- STM32之红外接收
- STM32——红外遥控器
- 手机红外遥控器发送红外信号到STM32【HAL库】
- 基于STM32红外计数的灯光照明
- STM32系列第27篇--红外遥控
- STM32和MLx90614非接触红外温度传感器
- 基于STM32的红外遥控重点解析
- STM32 定时器实现红外遥控数据接收
- 红外
- 红外
- 红外
- 红外
- 红外
- 红外
- 可以通过cout输出的几种opencv特有的数据类型
- hdu 6092 Rikka with Subset(多重背包)
- 接口
- Leetcode题解 53. Maximum Subarray 思路解析
- 算法模板之快速幂取模
- stm32 红外
- UESTC
- Android OTA升级原理和流程分析(五)---update.zip包从上层进入Recovery服务
- Oracle中通过substr和instr实现截取指定字符之间的字符串:
- 面试问题
- [WebGL入门]二十九,透明混色
- Linux实用命令整理
- Android-PickerView 说明文档(API)
- ionic3 实现扫码功能