void EXTI15_10_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line13)!= RESET)
{
//your code1
EXTI_ClearITPendingBit(EXTI_Line13);
}
if(EXTI_GetITStatus(EXTI_Line14)!= RESET)
{
EXTI_ClearITPendingBit(EXTI_Line14);
//your code2
}
}
前面清的话,如果下一次中断在该次中断退出前到来,那么该次中断退出(EXTI_ClearITPendingBit()执行)后,会马上进入下一次中断;
后面清的话,在该次中断退出(EXTI_ClearITPendingBit()执行)前到来的中断就会被忽略。这里后到来的中断,指的是同样的中断
为了保险起见,还是在中断函数的后面清比较好。在开始的时候清除中断标志,可能会造成程序的不稳定。