Ensure PWR is enabled before configuration
This commit is contained in:
parent
a02bcecaec
commit
0b483c535b
10
drv/pwr.c
10
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-------------------------------------------------------------
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user