每次唤醒AWU 中断标志一定要清除
__interrupt void AWU_IRQHandler(void) { AWU->CSR = AWU->CSR; /* 清除更新中断标志位 */ }
void Enter_Halt() { CLK_DeInit(); AWU_DeInit(); AWU_Cmd(ENABLE); CLK_SlowActiveHaltWakeUpCmd(ENABLE);//进入超低功耗模式 AWU_Init(AWU_TIMEBASE_2S); asm("halt"); }
执行asm("halt")后CPU停机,停机之前要把所有耗电的功能全部关闭。
唤醒之后将执行asm("halt")之后的语句,而不是从main()开始
时间: 2024-10-09 22:55:25