外部中断问题,麻烦各位了

2019-07-19 21:18发布

程序有两个外部中断,红外抢占优先级1,按键抢占优先级0,按键的IO已配置,中断也初始化,按下键后,红外可以进入中断程序,而按键不能进入中断,请指教
以下是按键中断配置和中断初始化,求帮忙看看是哪里有问题,只要求按下中断点灯即可。
IO配置:      
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);//开启时钟
        GPIO_InitStrcture.GPIO_Pin=GPIO_Pin_3;
        GPIO_InitStrcture.GPIO_Mode=GPIO_Mode_IN_FLOATING;//
        GPIO_InitStrcture.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_Init(GPIOE,&GPIO_InitStrcture);

中断配置:
               void KEY_EXIT_INT(void)
        {
        EXTI_InitTypeDef  EXTI_InitStructure;
        NVIC_InitTypeDef NVIC_InitStructure;       
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);//复用时钟开启
      GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource3);
        EXTI_InitStructure.EXTI_Line=EXTI_Line3;
      EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;
        EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;
        EXTI_InitStructure.EXTI_LineCmd=ENABLE;
      EXTI_Init(&EXTI_InitStructure);       
        NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQn;                        //使能按键KEY1所在的外部中断通道
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority =2;        //抢占优先级
  NVIC_InitStructure.NVIC_IRQChannelSubPriority =0;       
  NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;                                                               
  NVIC_Init(&NVIC_InitStructure);               
        }
中断程序: void EXTI3_IRQHandler(void)
{
        delay_ms(10);//消抖
        if(KEY1==0)         //按键KEY1
        {                                 
                LED1=1;//GPIO_ResetBits(GPIOA,GPIO_Pin_5);
        }                 
        EXTI_ClearITPendingBit(EXTI_Line3);  //清除LINE3上的中断标志位  
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。