1

我的睡眠模式和 NVIC_reset() 都有问题,也就是软件重置。

问题出现在两个完全不同的板上,都带有 LPC1769 uC。

如果我在 main() 或其他函数(中断例程除外)中进入睡眠模式,则睡眠模式可以正常工作。uC 也通过 EINT0 上的外部中断唤醒。重置函数在主函数中也能很好地完成它的工作。

但是,当在中断例程中调用睡眠模式或复位请求时,麻烦就开始了。似乎进入了睡眠模式,但 uC 不再唤醒。

例如,使用 EINT1 进入睡眠模式并使用 EINT0 唤醒:

void EINT0_IRQHandler(void)
{
  EXTI_ClearEXTIFlag(0);
}

void EINT1_IRQHandler(void)
{
    EXTI_ClearEXTIFlag(1);
    CLKPWR_Sleep();
}

有人知道为什么这不能正常工作吗?

4

1 回答 1

3

你检查过你的中断优先级吗?

34.3.5.2.1 从 WFI 唤醒或退出时休眠
通常,处理器只有在检测到具有足够优先级的异常以导致异常进入时才会唤醒。
于 2012-08-27T19:52:57.603 回答