diff --git a/drv/pwr.c b/drv/pwr.c index 19f17f7..bf5fa2e 100644 --- a/drv/pwr.c +++ b/drv/pwr.c @@ -26,7 +26,7 @@ static volatile struct PWR* regs = (struct PWR*)PWR_BASE_ADDRESS; void pwr_sleep(void) { scb_configure_deepsleep(false); - __asm("wfi"); + __asm("wfe"); } void pwr_stop(enum PwrWakeupSpeed speed) @@ -35,7 +35,7 @@ void pwr_stop(enum PwrWakeupSpeed speed) scb_configure_deepsleep(true); regs->CR.PDDS = 0; regs->CR.LPDS = speed; - __asm("wfi"); + __asm("wfe"); rcc_configure(RCC_PRESET_SPEED); } @@ -44,7 +44,7 @@ void pwr_standby(void) rcc_enable(RCC_AHB_NONE, RCC_APB1_PWR, RCC_APB2_NONE); scb_configure_deepsleep(true); regs->CR.PDDS = 1; - __asm("wfi"); + __asm("wfe"); rcc_configure(RCC_PRESET_SPEED); }