mbed library sources. Supersedes mbed-src.

Dependents:   Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more

Revision:
148:21d94c44109e
Parent:
144:ef7eb2e8f9f7
--- a/targets/hal/TARGET_STM/TARGET_STM32L4/sleep.c	Fri Sep 16 16:24:25 2016 +0100
+++ b/targets/hal/TARGET_STM/TARGET_STM32L4/sleep.c	Fri Sep 30 18:07:01 2016 +0100
@@ -28,6 +28,7 @@
  *******************************************************************************
  */
 #include "sleep_api.h"
+#include "rtc_api_hal.h"
 
 #if DEVICE_SLEEP
 
@@ -47,14 +48,28 @@
     // 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();
 
     // Restart HAL systick
     HAL_ResumeTick();
+
+#if DEVICE_LOWPOWERTIMER
+    rtc_synchronize();
+#endif
 }
 
 #endif