PA0為紅外接收模塊信號口
能實現最基本的紅外命令控制
僅供參考
主函數- uint8_t IrValue[4]; //設置一個4元素數組變量
-
- void delay_us(uint16_t time) //粗略微秒延時函數
- {
- uint16_t i=0;
- while(time--)
- {
- i=10;
- while(i--) ;
- }
- }
- int main(void) //主函數
- {
-
- EXTI_Config();
- GPIO_Config();
-
- while(1)
- {
- if(IrValue[2] == 0x46) //紅外按鍵鍵值
- {
- GPIO_SetBits(GPIOB,GPIO_Pin_0);
- }
- else
- {
- GPIO_ResetBits(GPIOB,GPIO_Pin_0);
- }
- }
-
- }
復制代碼 中斷服務函數- void EXTI0_IRQHandler(void)//中斷服務函數
- {
- if(EXTI_GetITStatus(EXTI_Line0) == 1)
- {
- uint16_t i,j;
- uint16_t Time=0;
-
-
- delay_us(5000); //延時5ms
-
- if(DO==1) //確定不是外界干擾,DO為紅外模塊OUT口連接的引腳PA0
- {
- return;
- }
- while(!DO); //跳過9ms
- while(DO); //跳過4.5ms
-
- for(j=0;j<4;j++)
- {
- for(i=0;i<8;i++)
- {
- while(!DO);
- while(DO)
- {
- delay_us(100);
- Time++;
- if(Time>30)
- {
- return;
- }
- }
- IrValue[j] = IrValue[j] >>1;
- if(Time>=10)
- {
- IrValue[j] |= 0x80;
- }
- Time=0;
- }
- }
- }
- EXTI_ClearITPendingBit(EXTI_Line0);
- }
復制代碼 中斷配置函數- void EXTI_Config(void) //中斷初始化配置函數
- {
- GPIO_InitTypeDef GPIO_InitStruct;//GPIO結構體變量
- EXTI_InitTypeDef EXTI_InitStruct;//EXTI結構體變量
- NVIC_InitTypeDef NVIC_InitStruct;//NVIC結構體變量
-
- //NVIC初始化配置
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
- NVIC_InitStruct.NVIC_IRQChannel = EXTI0_IRQn;
- NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 0;
- NVIC_InitStruct.NVIC_IRQChannelSubPriority = 1;
- NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;
- NVIC_Init(&NVIC_InitStruct);
-
- //GPIO初始化配置
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
- GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0;
- GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING;
- GPIO_Init(GPIOA,&GPIO_InitStruct);
-
- //EXTI初始化配置
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
- GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0);
- EXTI_InitStruct.EXTI_Line = EXTI_Line0;
- EXTI_InitStruct.EXTI_Mode = EXTI_Mode_Interrupt;
- EXTI_InitStruct.EXTI_Trigger = EXTI_Trigger_Falling;
- EXTI_InitStruct.EXTI_LineCmd = ENABLE;
- EXTI_Init(&EXTI_InitStruct);
- }
復制代碼
全部資料51hei下載地址:
IR.7z
(175.27 KB, 下載次數: 32)
2021-1-17 19:27 上傳
點擊文件名下載附件
源碼 下載積分: 黑幣 -5
|