| /** |
| ****************************************************************************** |
| * @file stm32l1xx_hal_pwr_ex.c |
| * @author MCD Application Team |
| * @brief Extended PWR HAL module driver. |
| * This file provides firmware functions to manage the following |
| * functionalities of the Power Controller (PWR) peripheral: |
| * + Extended Initialization and de-initialization functions |
| * + Extended Peripheral Control functions |
| * |
| ****************************************************************************** |
| * @attention |
| * |
| * <h2><center>© Copyright (c) 2017 STMicroelectronics. |
| * All rights reserved.</center></h2> |
| * |
| * This software component is licensed by ST under BSD 3-Clause license, |
| * the "License"; You may not use this file except in compliance with the |
| * License. You may obtain a copy of the License at: |
| * opensource.org/licenses/BSD-3-Clause |
| * |
| ****************************************************************************** |
| */ |
| |
| /* Includes ------------------------------------------------------------------*/ |
| #include "stm32l1xx_hal.h" |
| |
| /** @addtogroup STM32L1xx_HAL_Driver |
| * @{ |
| */ |
| |
| /** @defgroup PWREx PWREx |
| * @brief PWR HAL module driver |
| * @{ |
| */ |
| |
| #ifdef HAL_PWR_MODULE_ENABLED |
| |
| /* Private typedef -----------------------------------------------------------*/ |
| /* Private define ------------------------------------------------------------*/ |
| /* Private macro -------------------------------------------------------------*/ |
| /* Private variables ---------------------------------------------------------*/ |
| /* Private function prototypes -----------------------------------------------*/ |
| /* Private functions ---------------------------------------------------------*/ |
| |
| /** @defgroup PWREx_Exported_Functions PWREx Exported Functions |
| * @{ |
| */ |
| |
| /** @defgroup PWREx_Exported_Functions_Group1 Peripheral Extended Features Functions |
| * @brief Low Power modes configuration functions |
| * |
| @verbatim |
| |
| =============================================================================== |
| ##### Peripheral extended features functions ##### |
| =============================================================================== |
| @endverbatim |
| * @{ |
| */ |
| |
| /** |
| * @brief Return Voltage Scaling Range. |
| * @retval VOS bit field (PWR_REGULATOR_VOLTAGE_SCALE1, PWR_REGULATOR_VOLTAGE_SCALE2 or PWR_REGULATOR_VOLTAGE_SCALE3) |
| */ |
| uint32_t HAL_PWREx_GetVoltageRange(void) |
| { |
| return (PWR->CR & PWR_CR_VOS); |
| } |
| |
| |
| /** |
| * @brief Enables the Fast WakeUp from Ultra Low Power mode. |
| * @note This bit works in conjunction with ULP bit. |
| * Means, when ULP = 1 and FWU = 1 :VREFINT startup time is ignored when |
| * exiting from low power mode. |
| * @retval None |
| */ |
| void HAL_PWREx_EnableFastWakeUp(void) |
| { |
| /* Enable the fast wake up */ |
| *(__IO uint32_t *) CR_FWU_BB = (uint32_t)ENABLE; |
| } |
| |
| /** |
| * @brief Disables the Fast WakeUp from Ultra Low Power mode. |
| * @retval None |
| */ |
| void HAL_PWREx_DisableFastWakeUp(void) |
| { |
| /* Disable the fast wake up */ |
| *(__IO uint32_t *) CR_FWU_BB = (uint32_t)DISABLE; |
| } |
| |
| /** |
| * @brief Enables the Ultra Low Power mode |
| * @retval None |
| */ |
| void HAL_PWREx_EnableUltraLowPower(void) |
| { |
| /* Enable the Ultra Low Power mode */ |
| *(__IO uint32_t *) CR_ULP_BB = (uint32_t)ENABLE; |
| } |
| |
| /** |
| * @brief Disables the Ultra Low Power mode |
| * @retval None |
| */ |
| void HAL_PWREx_DisableUltraLowPower(void) |
| { |
| /* Disable the Ultra Low Power mode */ |
| *(__IO uint32_t *) CR_ULP_BB = (uint32_t)DISABLE; |
| } |
| |
| /** |
| * @brief Enters the Low Power Run mode. |
| * @note Low power run mode can only be entered when VCORE is in range 2. |
| * In addition, the dynamic voltage scaling must not be used when Low |
| * power run mode is selected. Only Stop and Sleep modes with regulator |
| * configured in Low power mode is allowed when Low power run mode is |
| * selected. |
| * @note In Low power run mode, all I/O pins keep the same state as in Run mode. |
| * @retval None |
| */ |
| void HAL_PWREx_EnableLowPowerRunMode(void) |
| { |
| /* Enters the Low Power Run mode */ |
| *(__IO uint32_t *) CR_LPSDSR_BB = (uint32_t)ENABLE; |
| *(__IO uint32_t *) CR_LPRUN_BB = (uint32_t)ENABLE; |
| } |
| |
| /** |
| * @brief Exits the Low Power Run mode. |
| * @retval None |
| */ |
| HAL_StatusTypeDef HAL_PWREx_DisableLowPowerRunMode(void) |
| { |
| /* Exits the Low Power Run mode */ |
| *(__IO uint32_t *) CR_LPRUN_BB = (uint32_t)DISABLE; |
| *(__IO uint32_t *) CR_LPSDSR_BB = (uint32_t)DISABLE; |
| return HAL_OK; |
| } |
| |
| /** |
| * @} |
| */ |
| |
| /** |
| * @} |
| */ |
| |
| #endif /* HAL_PWR_MODULE_ENABLED */ |
| /** |
| * @} |
| */ |
| |
| /** |
| * @} |
| */ |
| |
| /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |