我的睡眠模式和 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();
}
有人知道为什么这不能正常工作吗?