メモ書きブログ

日々の覚書

STM32の低電力モード

通常のSleepモード、外部割り込みでWakeup

 HAL_SuspendTick();
    HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON, PWR_SLEEPENTRY_WFI);
    HAL_ResumeTick();

LowPowerSleepモード、外部割り込みでWakeup

 HAL_SuspendTick();
    HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON, PWR_SLEEPENTRY_WFI);
    HAL_ResumeTick();

Stopモード、外部割り込みでWakeup StopモードではSYSCLKが停止するため事前にクロックを停止する必要がない。
但し、SYSCLKが初期化されるため、復帰時はMSI最大48MHzまたはHSI16MHzになっているため
IDEで生成されたSytstemClock_Config()をもう一度呼ぶ

 HAL_PWREx_EnterSTOP1Mode(PWR_STOPENTRY_WFI);
    SystemClock_Config();