




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include led.h#include delay.h#include sys.h#include lcd.h#include usart.h #include remote.h int main(void) delay_init(72); /延时函数初始化 NVIC_Configuration(); /设置NVIC中断分组2:2位抢占优先级,2位响应优先级 uart_init(9600); /串口初始化为9600 LED_Init(); /LED端口初始化 LCD_Init(); Remote_Init();/红外接收初始化 POINT_COLOR=RED;/设置字体为红色 LCD_ShowString(60,50,Mini STM32); LCD_ShowString(60,70,REMOTE TEST); LCD_ShowString(60,90,ATOMALIENTEK); LCD_ShowString(60,110,2011/1/1); while(1) if(IrRecFlag = 1) IrRecAddr1 = IrRecBuff0; IrRecAddr2 = IrRecBuff1; IrRecData1 = IrRecBuff2; IrRecData2 = IrRecBuff3; IrRecFlag = 0; switch(IrRecData1) case 0: LCD_ShowString(86,150, ERROR); break; case 162: LCD_ShowString(86,150, POWER); break; case 98: LCD_ShowString(86,150, UP );break; case 2: LCD_ShowString(86,150, PLAY );break; case 226: LCD_ShowString(86,150, ALIEN );break; case 194: LCD_ShowString(86,150, RIGHT );break; case 34: LCD_ShowString(86,150, LEFT );break; case 56: LCD_ShowString(86,150, 8 );break; case 224: LCD_ShowString(86,150, VOL- );break; case 168: LCD_ShowString(86,150, DOWN );break; case 144: LCD_ShowString(86,150, VOL+ );break; case 104: LCD_ShowString(86,150, 1 );break; case 152: LCD_ShowString(86,150, 2 );break; case 176: LCD_ShowString(86,150, 3 );break; case 48: LCD_ShowString(86,150, 4 );break; case 24: LCD_ShowString(86,150, 5 );break; case 122: LCD_ShowString(86,150, 6 );break; case 16: LCD_ShowString(86,150, 7 );break; case 90: LCD_ShowString(86,150, 9 );break; case 66: LCD_ShowString(86,150, 0 );break; case 82: LCD_ShowString(86,150, DELETE);break; #include remote.h#include delay.h#include usart.h#include / /本程序只供学习使用,未经作者许可,不得用于其它任何用途/ALIENTEK战舰STM32开发板/红外遥控解码驱动 代码 /正点原子ALIENTEK/技术论坛:/修改日期:2012/9/12/版本:V1.0/版权所有,盗版必究。/Copyright(C) 广州市星翼电子科技有限公司 2009-2019/All rights reserved /const u8 IrCode8=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;u8 IrRecStep = 0; u8 IrIndex = 0; u8 IrRecFlag = 0; u8 IrRecBuff4; u8 IrRecAddr1; u8 IrRecAddr2;u8 IrRecData1; u8 IrRecData2;u16 IrCycle = 0; u16 IrHigh = 0; void Remote_Init(void) GPIO_InitTypeDef GPIO_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_ICInitTypeDef TIM_ICInitStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 , ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_SetBits(GPIOA,GPIO_Pin_1); TIM_TimeBaseStructure.TIM_Period = 0xffff; TIM_TimeBaseStructure.TIM_Prescaler = (72 - 1); TIM_TimeBaseStructure.TIM_ClockDivision = 0x0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); TIM_ICInitStructure.TIM_Channel = TIM_Channel_2; TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising; TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1; TIM_ICInitStructure.TIM_ICFilter = 0x03; TIM_PWMIConfig(TIM2, &TIM_ICInitStructure); TIM_SelectInputTrigger(TIM2, TIM_TS_TI2FP2); TIM_SelectSlaveMode(TIM2, TIM_SlaveMode_Reset); TIM_SelectMasterSlaveMode(TIM2, TIM_MasterSlaveMode_Enable); TIM_ITConfig(TIM2, TIM_IT_CC2, ENABLE); TIM_ClearITPendingBit(TIM2,TIM_IT_CC2); NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); TIM_Cmd(TIM2, ENABLE);void TIM2_IRQHandler(void) u16 Dval=0; if(TIM_GetITStatus(TIM2,TIM_IT_CC2)!=RESET) TIM_ClearITPendingBit(TIM2, TIM_IT_CC2); IrCycle = TIM_GetCapture2(TIM2); IrHigh =TIM_GetCapture1(TIM2); Dval= IrCycle-IrHigh; TIM_SetCounter(TIM2,0); switch(IrRecStep) case 0: IrIndex=0; if (Dval IrHeadLow_Min) IrRecStep = 1; memset(IrRecBuff,0,sizeof(IrRecBuff); break; case 1: if (IrHigh IrHeadHigh_Min) IrRecStep = 2; break; case 2: if (IrCycle IrData00_Min)&(IrCycle IrData0_Min)&(IrHigh IrData10_Min)&(IrCycle IrData1_Min)&(IrHigh 3 |= IrCode7-IrIndex & 0x07; IrIndex+; else IrRecStep = 0; else IrRecStep = 0; if(IrIndex = 32) IrRecStep = 0; IrRecFlag = 1; break; default:break; #ifndef _RED_H#define _RED_H #include sys.h / /本程序只供学习使用,未经作者许可,不得用于其它任何用途/ALIENTEK战舰STM32开发板/红外遥控解码驱动 代码 /正点原子ALIENTEK/技术论坛:/修改日期:2012/9/12/版本:V1.0/版权所有,盗版必究。/Copyright(C) 广州市星翼电子科技有限公司 2009-2019/All rights reserved / #define RDATA PAin(1) /红外数据输入脚/-引导码低电平范围-#define IrHeadLow_Max 9500 #define IrHeadLow_Min 8400 /-引导码高电平范围-#define IrHeadHigh_Max 5000 #define IrHeadHigh_Min 4200 /-数据0的周期范围-#define IrData00_Max 1200 #define IrData00_Min 1040 /-数据1的周期范围-#define IrData10_Max 2320 #define IrData10_Min 2160 /-数据0的占空比(高电平)范围-#define IrData0_Max 640 #define IrData0_Min 300 /-数据1的占空比(高电平)范围-#define IrData1_Max 1760 #define IrData1_Min 1600 #define
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 地方水果宣传活动方案
- 大会现场创意活动方案
- 大型采访活动方案
- 城中村贴对联活动方案
- 蛋白粉行业市场发展分析及发展前景与投资研究报告2025-2028版
- 商务办公空间租赁及企业办公效率提升合同
- 安全型厂房合同转租协议模板
- 环境场地综合调查与风险评估委托合同范本
- 厂房屋顶安全通道设计与施工合同
- 公共停车场车位买卖及租赁一体化合同协议
- 系统思维与系统决策系统动力学知到智慧树期末考试答案题库2025年中央财经大学
- 社工社会考试试题及答案
- 跨文化交际知识体系及其前沿动态
- 2025浙江中考:历史必背知识点
- 卫星遥感图像传输质量评估-全面剖析
- 2025-2030中国跨境支付行业市场发展现状及竞争格局与投资前景研究报告
- 2025年果品购销合同简易模板
- 胰岛素皮下注射团体标准解读 2
- 《眼科手术新技术》课件
- 《SLT631-2025水利水电工程单元工程施工质量验收标准》知识培训
- 西学中结业考核复习测试有答案
评论
0/150
提交评论