From db0ff69d5badc8b383e18fdc3105d1b2b02f9a0b Mon Sep 17 00:00:00 2001 From: svastm Date: Wed, 21 Sep 2016 17:16:23 +0200 Subject: [PATCH] STM32L4 - Update deepsleep implementation --- hal/targets/hal/TARGET_STM/TARGET_STM32L4/sleep.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/hal/targets/hal/TARGET_STM/TARGET_STM32L4/sleep.c b/hal/targets/hal/TARGET_STM/TARGET_STM32L4/sleep.c index 46486b0705..542cdc768f 100644 --- a/hal/targets/hal/TARGET_STM/TARGET_STM32L4/sleep.c +++ b/hal/targets/hal/TARGET_STM/TARGET_STM32L4/sleep.c @@ -48,8 +48,18 @@ void deepsleep(void) // Stop HAL systick HAL_SuspendTick(); - // Request to enter STOP mode with regulator in low power mode - HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI); + // Request to enter STOP mode 1 with regulator in low power mode + if (__HAL_RCC_PWR_IS_CLK_ENABLED()) { + HAL_PWREx_EnableLowPowerRunMode(); + HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI); + HAL_PWREx_DisableLowPowerRunMode(); + } else { + __HAL_RCC_PWR_CLK_ENABLE(); + HAL_PWREx_EnableLowPowerRunMode(); + HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI); + HAL_PWREx_DisableLowPowerRunMode(); + __HAL_RCC_PWR_CLK_DISABLE(); + } // After wake-up from STOP reconfigure the PLL SetSysClock();