我的睡眠模式和NVIC_reset()都有问题,也就是软件重置。
这个问题存在于两个完全不同的电路板上,两者都带有LPC1769 uC。
如果我在main()或其他函数中输入sleepmode(中断例程除外),则睡眠模式正常工作。 uC也会在EINT0上通过外部中断唤醒。复位功能在主函数中也能正常工作。
但是当在中断例程中调用sleepmode或reset请求时会出现故障。看到要进入睡眠模式,但uC不再醒来。
E.g。使用EINT1进入睡眠模式并使用EINT0唤醒:
void EINT0_IRQHandler(void)
{
EXTI_ClearEXTIFlag(0);
}
void EINT1_IRQHandler(void)
{
EXTI_ClearEXTIFlag(1);
CLKPWR_Sleep();
}
有人知道为什么这不能正常工作?
答案 0 :(得分:3)
您是否检查了中断优先级?
34.3.5.2.1从WFI唤醒或出入睡眠
通常,处理器仅在检测到具有足够优先级的异常时才会唤醒 导致异常进入。