我正在为LPC1768编写一个模拟状态机的程序。在开始状态下,程序必须能够处理按钮中断(EINT1 EINT2)。然后,在NVIC(嵌套向量中断控制器)上禁用了中断,但仍将其发送给它,从而变为挂起状态。如果我重新启用了处理的中断,那么在执行此操作之前,我会尝试清除未决的中断。它解决了问题,但是NVIC不再看到新的中断,我也不明白为什么。
我使用以下命令禁用中断
NVIC_DisableIRQ(EINT2_IRQn);
NVIC_DisableIRQ(EINT1_IRQn);
是时候我清除待处理的对象并重新启用:
NVIC_ClearPendingIRQ(EINT1_IRQn);
NVIC_ClearPendingIRQ(EINT2_IRQn);
NVIC_EnableIRQ(EINT2_IRQn);
NVIC_EnableIRQ(EINT1_IRQn);
代码不是在板上执行的,只能使用keil uvision5软件进行调试。