From 0b483c535bd68404b4269188d550ab188a314b6e Mon Sep 17 00:00:00 2001 From: Steins7 Date: Sat, 27 Jul 2024 14:15:31 +0200 Subject: [PATCH] Ensure PWR is enabled before configuration --- drv/pwr.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drv/pwr.c b/drv/pwr.c index 223a660..19f17f7 100644 --- a/drv/pwr.c +++ b/drv/pwr.c @@ -11,6 +11,7 @@ #include "pwr.h" #include "pwr_regs.h" #include "scb.h" +#include "rcc.h" //--local definitions----------------------------------------------------------- @@ -30,19 +31,28 @@ void pwr_sleep(void) void pwr_stop(enum PwrWakeupSpeed speed) { + rcc_enable(RCC_AHB_NONE, RCC_APB1_PWR, RCC_APB2_NONE); scb_configure_deepsleep(true); regs->CR.PDDS = 0; regs->CR.LPDS = speed; __asm("wfi"); + rcc_configure(RCC_PRESET_SPEED); } 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"); + rcc_configure(RCC_PRESET_SPEED); } +void pwr_configure_bkp_write(bool enable) +{ + rcc_enable(RCC_AHB_NONE, RCC_APB1_PWR, RCC_APB2_NONE); + regs->CR.DBP = enable; +} //--local functions-------------------------------------------------------------