资源描述:
《红外遥控stm32程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、/********************************************************************************** * stm32F103VET6红外驱动【遥控器解码实验程序】 * * 遥控器:42位编码 * ***********************************************************************************/ #include"stm32f10x.h" #include"exti.h" #
2、include"beep.h" #include"SysTick.h" #define LED1_0 GPIOD->BRR =0x00000100//LED低电平 #define LED2_0 GPIOD->BRR =0x00000200 #define LED3_0 GPIOD->BRR =0x00000400 #define LED4_0 GPIOD->BRR =0x00000800 #define LED1_1 GPIOD->BSRR=0x00000100
3、 //LED高电平 #define LED2_1 GPIOD->BSRR=0x00000200 #define LED3_1 GPIOD->BSRR=0x00000400 #define LED4_1 GPIOD->BSRR=0x00000800 #define IR_Hongwai_0 GPIOE->BRR =0x00000004 //红外数据低电平 #define IR_Hongwai_1 GPIOE->BSRR=0x00000004 //红外数据高电平
4、#define IR_Hongwai_xGPIO_ReadInputDataBit(GPIOE,GPIO_Pin_2) //读取红外电平状态 unsignedcharTimeByte; unsignedintIR_Tireafg[4]; unsignedintIR_xidwrit[8]={0,0,0,0,0,0,0,0}; /* * GPIO端口配置子函数 */ voidGPIO_InitStructReadtempCmd(void) { GPIO_InitTypeDefGPIO_InitStruct; G
5、PIO_InitStruct.GPIO_Pin=GPIO_Pin_2; //配置GPIO管脚 GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IPU; //配置管脚为输入上拉 GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz; //配置管脚速率50MHZ GPIO_Init(GPIOE,&GPIO_InitStruct); //初始化指定端口 GPIO_InitStruct.GPIO_Pin=GPIO_Pin_5; GPIO_InitStruct.
6、GPIO_Mode=GPIO_Mode_Out_PP; //配置管脚陪推挽式输出 GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOB,&GPIO_InitStruct); GPIO_InitStruct.GPIO_Pin=GPIO_Pin_8
7、GPIO_Pin_9
8、GPIO_Pin_10
9、GPIO_Pin_11; GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP; GPIO_InitStruct.GPIO_Sp
10、eed=GPIO_Speed_50MHz; GPIO_Init(GPIOD,&GPIO_InitStruct); } /* * 配置外设时钟子函数 */ voidRCC_APB2PeriphReadtempyCmd(void) { RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); //打开GPIOB外设时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE); //打开GPIOE外设时钟 RCC_AP
11、B2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE); //打开GPIOD外设时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); //打开AFIO复用功能外设时钟 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM