基本都和STM32的中断一样,主要注意以下几点
1、多个外设时钟的使能不能使用或关系,只能一个一个的调用函数进行使能,不然会导致程序卡死。
MAP_PRCMPeripheralClkEnable(PRCM_GPIOA1, PRCM_RUN_MODE_CLK); //外设时钟不支持或
MAP_PRCMPeripheralClkEnable(PRCM_GPIOA2, PRCM_RUN_MODE_CLK);
2、外部中断的引脚设置成输入模式。
3、使能中断的步骤
//Enable GPIO Interrupt
MAP_GPIOIntClear(GPIOA2_BASE,GPIO_PIN_6);//先清除中断标志
MAP_IntPendClear(INT_GPIOA2); //清除之前已经触发但是没有处理的中断
MAP_IntEnable(INT_GPIOA2); //使能中断源所在的分组
MAP_GPIOIntEnable(GPIOA2_BASE,GPIO_PIN_6); //使能中断引脚
在4中的函数中,还包括使能中断的剩余步骤
MAP_GPIOIntTypeSet(GPIOA1_BASE,GPIO_PIN_5,GPIO_RISING_EDGE);//中断触发方式
MAP_IntPriorityGroupingSet(0);//中断分组,这一步可以另外单独写在主函数中。
MAP_IntPrioritySet(INT_GPIOA1, INT_PRIORITY_LVL_1);//中断优先级
MAP_GPIOIntRegister(GPIOA1_BASE, GPIOs3IntHandler);//注册中断处理函数
//最后,可以再清除一次中断标志,并使能中断。
MAP_GPIOIntClear(GPIOA2_BASE,GPIO_PIN_6);//先清除中断标志
MAP_GPI