如何正确清除LPC17xx中的待处理外部中断?

时间:2018-12-31 09:48:24

标签: embedded interrupt lpc

我正在为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软件进行调试。

0 个答案:

没有答案