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.h"
|
||||||
#include "pwr_regs.h"
|
#include "pwr_regs.h"
|
||||||
#include "scb.h"
|
#include "scb.h"
|
||||||
|
#include "rcc.h"
|
||||||
|
|
||||||
|
|
||||||
//--local definitions-----------------------------------------------------------
|
//--local definitions-----------------------------------------------------------
|
||||||
@ -30,19 +31,28 @@ void pwr_sleep(void)
|
|||||||
|
|
||||||
void pwr_stop(enum PwrWakeupSpeed speed)
|
void pwr_stop(enum PwrWakeupSpeed speed)
|
||||||
{
|
{
|
||||||
|
rcc_enable(RCC_AHB_NONE, RCC_APB1_PWR, RCC_APB2_NONE);
|
||||||
scb_configure_deepsleep(true);
|
scb_configure_deepsleep(true);
|
||||||
regs->CR.PDDS = 0;
|
regs->CR.PDDS = 0;
|
||||||
regs->CR.LPDS = speed;
|
regs->CR.LPDS = speed;
|
||||||
__asm("wfi");
|
__asm("wfi");
|
||||||
|
rcc_configure(RCC_PRESET_SPEED);
|
||||||
}
|
}
|
||||||
|
|
||||||
void pwr_standby(void)
|
void pwr_standby(void)
|
||||||
{
|
{
|
||||||
|
rcc_enable(RCC_AHB_NONE, RCC_APB1_PWR, RCC_APB2_NONE);
|
||||||
scb_configure_deepsleep(true);
|
scb_configure_deepsleep(true);
|
||||||
regs->CR.PDDS = 1;
|
regs->CR.PDDS = 1;
|
||||||
__asm("wfi");
|
__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-------------------------------------------------------------
|
//--local functions-------------------------------------------------------------
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user