STM32F479xx HAL User Manual
stm32f4xx_ll_pwr.h
Go to the documentation of this file.
00001 /**
00002   ******************************************************************************
00003   * @file    stm32f4xx_ll_pwr.h
00004   * @author  MCD Application Team
00005   * @brief   Header file of PWR LL module.
00006   ******************************************************************************
00007   * @attention
00008   *
00009   * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
00010   * All rights reserved.</center></h2>
00011   *
00012   * This software component is licensed by ST under BSD 3-Clause license,
00013   * the "License"; You may not use this file except in compliance with the
00014   * License. You may obtain a copy of the License at:
00015   *                        opensource.org/licenses/BSD-3-Clause
00016   *
00017   ******************************************************************************
00018   */
00019 
00020 /* Define to prevent recursive inclusion -------------------------------------*/
00021 #ifndef __STM32F4xx_LL_PWR_H
00022 #define __STM32F4xx_LL_PWR_H
00023 
00024 #ifdef __cplusplus
00025 extern "C" {
00026 #endif
00027 
00028 /* Includes ------------------------------------------------------------------*/
00029 #include "stm32f4xx.h"
00030 
00031 /** @addtogroup STM32F4xx_LL_Driver
00032   * @{
00033   */
00034 
00035 #if defined(PWR)
00036 
00037 /** @defgroup PWR_LL PWR
00038   * @{
00039   */
00040 
00041 /* Private types -------------------------------------------------------------*/
00042 /* Private variables ---------------------------------------------------------*/
00043 /* Private constants ---------------------------------------------------------*/
00044 /* Private macros ------------------------------------------------------------*/
00045 /* Exported types ------------------------------------------------------------*/
00046 /* Exported constants --------------------------------------------------------*/
00047 /** @defgroup PWR_LL_Exported_Constants PWR Exported Constants
00048   * @{
00049   */
00050 
00051 /** @defgroup PWR_LL_EC_CLEAR_FLAG Clear Flags Defines
00052   * @brief    Flags defines which can be used with LL_PWR_WriteReg function
00053   * @{
00054   */
00055 #define LL_PWR_CR_CSBF                     PWR_CR_CSBF            /*!< Clear standby flag */
00056 #define LL_PWR_CR_CWUF                     PWR_CR_CWUF            /*!< Clear wakeup flag */
00057 /**
00058   * @}
00059   */
00060 
00061 /** @defgroup PWR_LL_EC_GET_FLAG Get Flags Defines
00062   * @brief    Flags defines which can be used with LL_PWR_ReadReg function
00063   * @{
00064   */
00065 #define LL_PWR_CSR_WUF                     PWR_CSR_WUF            /*!< Wakeup flag */
00066 #define LL_PWR_CSR_SBF                     PWR_CSR_SBF            /*!< Standby flag */
00067 #define LL_PWR_CSR_PVDO                    PWR_CSR_PVDO           /*!< Power voltage detector output flag */
00068 #define LL_PWR_CSR_VOS                     PWR_CSR_VOSRDY            /*!< Voltage scaling select flag */
00069 #if defined(PWR_CSR_EWUP)
00070 #define LL_PWR_CSR_EWUP1                   PWR_CSR_EWUP           /*!< Enable WKUP pin */
00071 #elif defined(PWR_CSR_EWUP1)
00072 #define LL_PWR_CSR_EWUP1                   PWR_CSR_EWUP1          /*!< Enable WKUP pin 1 */
00073 #endif /* PWR_CSR_EWUP */
00074 #if defined(PWR_CSR_EWUP2)
00075 #define LL_PWR_CSR_EWUP2                   PWR_CSR_EWUP2          /*!< Enable WKUP pin 2 */
00076 #endif /* PWR_CSR_EWUP2 */
00077 #if defined(PWR_CSR_EWUP3)
00078 #define LL_PWR_CSR_EWUP3                   PWR_CSR_EWUP3          /*!< Enable WKUP pin 3 */
00079 #endif /* PWR_CSR_EWUP3 */
00080 /**
00081   * @}
00082   */
00083 
00084 /** @defgroup PWR_LL_EC_REGU_VOLTAGE Regulator Voltage
00085   * @{
00086   */
00087 #if defined(PWR_CR_VOS_0)
00088 #define LL_PWR_REGU_VOLTAGE_SCALE3         (PWR_CR_VOS_0)
00089 #define LL_PWR_REGU_VOLTAGE_SCALE2         (PWR_CR_VOS_1)
00090 #define LL_PWR_REGU_VOLTAGE_SCALE1         (PWR_CR_VOS_0 | PWR_CR_VOS_1) /* The SCALE1 is not available for STM32F401xx devices */
00091 #else
00092 #define LL_PWR_REGU_VOLTAGE_SCALE1         (PWR_CR_VOS)
00093 #define LL_PWR_REGU_VOLTAGE_SCALE2         0x00000000U
00094 #endif /* PWR_CR_VOS_0 */
00095 /**
00096   * @}
00097   */
00098 
00099 /** @defgroup PWR_LL_EC_MODE_PWR Mode Power
00100   * @{
00101   */
00102 #define LL_PWR_MODE_STOP_MAINREGU             0x00000000U                    /*!< Enter Stop mode when the CPU enters deepsleep */
00103 #define LL_PWR_MODE_STOP_LPREGU               (PWR_CR_LPDS)                  /*!< Enter Stop mode (with low power Regulator ON) when the CPU enters deepsleep */
00104 #if defined(PWR_CR_MRUDS) && defined(PWR_CR_LPUDS) && defined(PWR_CR_FPDS)
00105 #define LL_PWR_MODE_STOP_MAINREGU_UNDERDRIVE  (PWR_CR_MRUDS | PWR_CR_FPDS)                 /*!< Enter Stop mode (with main Regulator in under-drive mode) when the CPU enters deepsleep */
00106 #define LL_PWR_MODE_STOP_LPREGU_UNDERDRIVE    (PWR_CR_LPDS | PWR_CR_LPUDS | PWR_CR_FPDS)   /*!< Enter Stop mode (with low power Regulator in under-drive mode) when the CPU enters deepsleep */
00107 #endif /* PWR_CR_MRUDS && PWR_CR_LPUDS && PWR_CR_FPDS */
00108 #if defined(PWR_CR_MRLVDS) && defined(PWR_CR_LPLVDS) && defined(PWR_CR_FPDS)
00109 #define LL_PWR_MODE_STOP_MAINREGU_DEEPSLEEP  (PWR_CR_MRLVDS | PWR_CR_FPDS)                 /*!< Enter Stop mode (with main Regulator in Deep Sleep mode) when the CPU enters deepsleep */
00110 #define LL_PWR_MODE_STOP_LPREGU_DEEPSLEEP    (PWR_CR_LPDS | PWR_CR_LPLVDS | PWR_CR_FPDS)   /*!< Enter Stop mode (with low power Regulator in Deep Sleep mode) when the CPU enters deepsleep */
00111 #endif /* PWR_CR_MRLVDS && PWR_CR_LPLVDS && PWR_CR_FPDS */
00112 #define LL_PWR_MODE_STANDBY                   (PWR_CR_PDDS)                  /*!< Enter Standby mode when the CPU enters deepsleep */
00113 /**
00114   * @}
00115   */
00116 
00117 /** @defgroup PWR_LL_EC_REGU_MODE_DS_MODE  Regulator Mode In Deep Sleep Mode
00118  * @{
00119  */
00120 #define LL_PWR_REGU_DSMODE_MAIN        0x00000000U           /*!< Voltage Regulator in main mode during deepsleep mode */
00121 #define LL_PWR_REGU_DSMODE_LOW_POWER   (PWR_CR_LPDS)         /*!< Voltage Regulator in low-power mode during deepsleep mode */
00122 /**
00123   * @}
00124   */
00125 
00126 /** @defgroup PWR_LL_EC_PVDLEVEL Power Voltage Detector Level
00127   * @{
00128   */
00129 #define LL_PWR_PVDLEVEL_0                  (PWR_CR_PLS_LEV0)      /*!< Voltage threshold detected by PVD 2.2 V */
00130 #define LL_PWR_PVDLEVEL_1                  (PWR_CR_PLS_LEV1)      /*!< Voltage threshold detected by PVD 2.3 V */
00131 #define LL_PWR_PVDLEVEL_2                  (PWR_CR_PLS_LEV2)      /*!< Voltage threshold detected by PVD 2.4 V */
00132 #define LL_PWR_PVDLEVEL_3                  (PWR_CR_PLS_LEV3)      /*!< Voltage threshold detected by PVD 2.5 V */
00133 #define LL_PWR_PVDLEVEL_4                  (PWR_CR_PLS_LEV4)      /*!< Voltage threshold detected by PVD 2.6 V */
00134 #define LL_PWR_PVDLEVEL_5                  (PWR_CR_PLS_LEV5)      /*!< Voltage threshold detected by PVD 2.7 V */
00135 #define LL_PWR_PVDLEVEL_6                  (PWR_CR_PLS_LEV6)      /*!< Voltage threshold detected by PVD 2.8 V */
00136 #define LL_PWR_PVDLEVEL_7                  (PWR_CR_PLS_LEV7)      /*!< Voltage threshold detected by PVD 2.9 V */
00137 /**
00138   * @}
00139   */
00140 /** @defgroup PWR_LL_EC_WAKEUP_PIN  Wakeup Pins
00141   * @{
00142   */
00143 #if defined(PWR_CSR_EWUP)
00144 #define LL_PWR_WAKEUP_PIN1                 (PWR_CSR_EWUP)         /*!< WKUP pin : PA0 */
00145 #endif /* PWR_CSR_EWUP */
00146 #if defined(PWR_CSR_EWUP1)
00147 #define LL_PWR_WAKEUP_PIN1                 (PWR_CSR_EWUP1)        /*!< WKUP pin 1 : PA0 */
00148 #endif /* PWR_CSR_EWUP1 */
00149 #if defined(PWR_CSR_EWUP2)
00150 #define LL_PWR_WAKEUP_PIN2                 (PWR_CSR_EWUP2)        /*!< WKUP pin 2 : PC0 or PC13 according to device */
00151 #endif /* PWR_CSR_EWUP2 */
00152 #if defined(PWR_CSR_EWUP3)
00153 #define LL_PWR_WAKEUP_PIN3                 (PWR_CSR_EWUP3)        /*!< WKUP pin 3 : PC1 */
00154 #endif /* PWR_CSR_EWUP3 */
00155 /**
00156   * @}
00157   */
00158 
00159 /**
00160   * @}
00161   */
00162 
00163 
00164 /* Exported macro ------------------------------------------------------------*/
00165 /** @defgroup PWR_LL_Exported_Macros PWR Exported Macros
00166   * @{
00167   */
00168 
00169 /** @defgroup PWR_LL_EM_WRITE_READ Common write and read registers Macros
00170   * @{
00171   */
00172 
00173 /**
00174   * @brief  Write a value in PWR register
00175   * @param  __REG__ Register to be written
00176   * @param  __VALUE__ Value to be written in the register
00177   * @retval None
00178   */
00179 #define LL_PWR_WriteReg(__REG__, __VALUE__) WRITE_REG(PWR->__REG__, (__VALUE__))
00180 
00181 /**
00182   * @brief  Read a value in PWR register
00183   * @param  __REG__ Register to be read
00184   * @retval Register value
00185   */
00186 #define LL_PWR_ReadReg(__REG__) READ_REG(PWR->__REG__)
00187 /**
00188   * @}
00189   */
00190 
00191 /**
00192   * @}
00193   */
00194 
00195 /* Exported functions --------------------------------------------------------*/
00196 /** @defgroup PWR_LL_Exported_Functions PWR Exported Functions
00197   * @{
00198   */
00199 
00200 /** @defgroup PWR_LL_EF_Configuration Configuration
00201   * @{
00202   */
00203 #if defined(PWR_CR_FISSR)
00204 /**
00205   * @brief  Enable FLASH interface STOP while system Run is ON
00206   * @rmtoll CR    FISSR       LL_PWR_EnableFLASHInterfaceSTOP
00207   * @note  This mode is enabled only with STOP low power mode.
00208   * @retval None
00209   */
00210 __STATIC_INLINE void LL_PWR_EnableFLASHInterfaceSTOP(void)
00211 {
00212   SET_BIT(PWR->CR, PWR_CR_FISSR);
00213 }
00214 
00215 /**
00216   * @brief  Disable FLASH Interface STOP while system Run is ON
00217   * @rmtoll CR    FISSR       LL_PWR_DisableFLASHInterfaceSTOP
00218   * @retval None
00219   */
00220 __STATIC_INLINE void LL_PWR_DisableFLASHInterfaceSTOP(void)
00221 {
00222   CLEAR_BIT(PWR->CR, PWR_CR_FISSR);
00223 }
00224 
00225 /**
00226   * @brief  Check if FLASH Interface STOP while system Run feature is enabled
00227   * @rmtoll CR    FISSR       LL_PWR_IsEnabledFLASHInterfaceSTOP
00228   * @retval State of bit (1 or 0).
00229   */
00230 __STATIC_INLINE uint32_t LL_PWR_IsEnabledFLASHInterfaceSTOP(void)
00231 {
00232   return (READ_BIT(PWR->CR, PWR_CR_FISSR) == (PWR_CR_FISSR));
00233 }
00234 #endif /* PWR_CR_FISSR */
00235 
00236 #if defined(PWR_CR_FMSSR)
00237 /**
00238   * @brief  Enable FLASH Memory STOP while system Run is ON
00239   * @rmtoll CR    FMSSR       LL_PWR_EnableFLASHMemorySTOP
00240   * @note  This mode is enabled only with STOP low power mode.
00241   * @retval None
00242   */
00243 __STATIC_INLINE void LL_PWR_EnableFLASHMemorySTOP(void)
00244 {
00245   SET_BIT(PWR->CR, PWR_CR_FMSSR);
00246 }
00247 
00248 /**
00249   * @brief  Disable FLASH Memory STOP while system Run is ON
00250   * @rmtoll CR    FMSSR       LL_PWR_DisableFLASHMemorySTOP
00251   * @retval None
00252   */
00253 __STATIC_INLINE void LL_PWR_DisableFLASHMemorySTOP(void)
00254 {
00255   CLEAR_BIT(PWR->CR, PWR_CR_FMSSR);
00256 }
00257 
00258 /**
00259   * @brief  Check if FLASH Memory STOP while system Run feature is enabled
00260   * @rmtoll CR    FMSSR       LL_PWR_IsEnabledFLASHMemorySTOP
00261   * @retval State of bit (1 or 0).
00262   */
00263 __STATIC_INLINE uint32_t LL_PWR_IsEnabledFLASHMemorySTOP(void)
00264 {
00265   return (READ_BIT(PWR->CR, PWR_CR_FMSSR) == (PWR_CR_FMSSR));
00266 }
00267 #endif /* PWR_CR_FMSSR */
00268 #if defined(PWR_CR_UDEN)
00269 /**
00270   * @brief  Enable Under Drive Mode
00271   * @rmtoll CR    UDEN       LL_PWR_EnableUnderDriveMode
00272   * @note  This mode is enabled only with STOP low power mode.
00273   *        In this mode, the 1.2V domain is preserved in reduced leakage mode. This 
00274   *        mode is only available when the main Regulator or the low power Regulator 
00275   *        is in low voltage mode.      
00276   * @note  If the Under-drive mode was enabled, it is automatically disabled after 
00277   *        exiting Stop mode. 
00278   *        When the voltage Regulator operates in Under-drive mode, an additional  
00279   *        startup delay is induced when waking up from Stop mode.
00280   * @retval None
00281   */
00282 __STATIC_INLINE void LL_PWR_EnableUnderDriveMode(void)
00283 {
00284   SET_BIT(PWR->CR, PWR_CR_UDEN);
00285 }
00286 
00287 /**
00288   * @brief  Disable Under Drive Mode
00289   * @rmtoll CR    UDEN       LL_PWR_DisableUnderDriveMode
00290   * @retval None
00291   */
00292 __STATIC_INLINE void LL_PWR_DisableUnderDriveMode(void)
00293 {
00294   CLEAR_BIT(PWR->CR, PWR_CR_UDEN);
00295 }
00296 
00297 /**
00298   * @brief  Check if Under Drive Mode is enabled
00299   * @rmtoll CR    UDEN       LL_PWR_IsEnabledUnderDriveMode
00300   * @retval State of bit (1 or 0).
00301   */
00302 __STATIC_INLINE uint32_t LL_PWR_IsEnabledUnderDriveMode(void)
00303 {
00304   return (READ_BIT(PWR->CR, PWR_CR_UDEN) == (PWR_CR_UDEN));
00305 }
00306 #endif /* PWR_CR_UDEN */
00307 
00308 #if defined(PWR_CR_ODSWEN)
00309 /**
00310   * @brief  Enable Over drive switching
00311   * @rmtoll CR    ODSWEN       LL_PWR_EnableOverDriveSwitching
00312   * @retval None
00313   */
00314 __STATIC_INLINE void LL_PWR_EnableOverDriveSwitching(void)
00315 {
00316   SET_BIT(PWR->CR, PWR_CR_ODSWEN);
00317 }
00318 
00319 /**
00320   * @brief  Disable Over drive switching
00321   * @rmtoll CR    ODSWEN       LL_PWR_DisableOverDriveSwitching
00322   * @retval None
00323   */
00324 __STATIC_INLINE void LL_PWR_DisableOverDriveSwitching(void)
00325 {
00326   CLEAR_BIT(PWR->CR, PWR_CR_ODSWEN);
00327 }
00328 
00329 /**
00330   * @brief  Check if Over drive switching is enabled
00331   * @rmtoll CR    ODSWEN       LL_PWR_IsEnabledOverDriveSwitching
00332   * @retval State of bit (1 or 0).
00333   */
00334 __STATIC_INLINE uint32_t LL_PWR_IsEnabledOverDriveSwitching(void)
00335 {
00336   return (READ_BIT(PWR->CR, PWR_CR_ODSWEN) == (PWR_CR_ODSWEN));
00337 }
00338 #endif /* PWR_CR_ODSWEN */
00339 #if defined(PWR_CR_ODEN)
00340 /**
00341   * @brief  Enable Over drive Mode
00342   * @rmtoll CR    ODEN       LL_PWR_EnableOverDriveMode
00343   * @retval None
00344   */
00345 __STATIC_INLINE void LL_PWR_EnableOverDriveMode(void)
00346 {
00347   SET_BIT(PWR->CR, PWR_CR_ODEN);
00348 }
00349 
00350 /**
00351   * @brief  Disable Over drive Mode
00352   * @rmtoll CR    ODEN       LL_PWR_DisableOverDriveMode
00353   * @retval None
00354   */
00355 __STATIC_INLINE void LL_PWR_DisableOverDriveMode(void)
00356 {
00357   CLEAR_BIT(PWR->CR, PWR_CR_ODEN);
00358 }
00359 
00360 /**
00361   * @brief  Check if Over drive switching is enabled
00362   * @rmtoll CR    ODEN       LL_PWR_IsEnabledOverDriveMode
00363   * @retval State of bit (1 or 0).
00364   */
00365 __STATIC_INLINE uint32_t LL_PWR_IsEnabledOverDriveMode(void)
00366 {
00367   return (READ_BIT(PWR->CR, PWR_CR_ODEN) == (PWR_CR_ODEN));
00368 }
00369 #endif /* PWR_CR_ODEN */
00370 #if defined(PWR_CR_MRUDS)
00371 /**
00372   * @brief  Enable Main Regulator in deepsleep under-drive Mode
00373   * @rmtoll CR    MRUDS       LL_PWR_EnableMainRegulatorDeepSleepUDMode
00374   * @retval None
00375   */
00376 __STATIC_INLINE void LL_PWR_EnableMainRegulatorDeepSleepUDMode(void)
00377 {
00378   SET_BIT(PWR->CR, PWR_CR_MRUDS);
00379 }
00380 
00381 /**
00382   * @brief  Disable Main Regulator in deepsleep under-drive Mode
00383   * @rmtoll CR    MRUDS       LL_PWR_DisableMainRegulatorDeepSleepUDMode
00384   * @retval None
00385   */
00386 __STATIC_INLINE void LL_PWR_DisableMainRegulatorDeepSleepUDMode(void)
00387 {
00388   CLEAR_BIT(PWR->CR, PWR_CR_MRUDS);
00389 }
00390 
00391 /**
00392   * @brief  Check if Main Regulator in deepsleep under-drive Mode is enabled
00393   * @rmtoll CR    MRUDS       LL_PWR_IsEnabledMainRegulatorDeepSleepUDMode
00394   * @retval State of bit (1 or 0).
00395   */
00396 __STATIC_INLINE uint32_t LL_PWR_IsEnabledMainRegulatorDeepSleepUDMode(void)
00397 {
00398   return (READ_BIT(PWR->CR, PWR_CR_MRUDS) == (PWR_CR_MRUDS));
00399 }
00400 #endif /* PWR_CR_MRUDS */
00401 
00402 #if defined(PWR_CR_LPUDS)
00403 /**
00404   * @brief  Enable Low Power Regulator in deepsleep under-drive Mode
00405   * @rmtoll CR    LPUDS       LL_PWR_EnableLowPowerRegulatorDeepSleepUDMode
00406   * @retval None
00407   */
00408 __STATIC_INLINE void LL_PWR_EnableLowPowerRegulatorDeepSleepUDMode(void)
00409 {
00410   SET_BIT(PWR->CR, PWR_CR_LPUDS);
00411 }
00412 
00413 /**
00414   * @brief  Disable Low Power Regulator in deepsleep under-drive Mode
00415   * @rmtoll CR    LPUDS       LL_PWR_DisableLowPowerRegulatorDeepSleepUDMode
00416   * @retval None
00417   */
00418 __STATIC_INLINE void LL_PWR_DisableLowPowerRegulatorDeepSleepUDMode(void)
00419 {
00420   CLEAR_BIT(PWR->CR, PWR_CR_LPUDS);
00421 }
00422 
00423 /**
00424   * @brief  Check if Low Power Regulator in deepsleep under-drive Mode is enabled
00425   * @rmtoll CR    LPUDS       LL_PWR_IsEnabledLowPowerRegulatorDeepSleepUDMode
00426   * @retval State of bit (1 or 0).
00427   */
00428 __STATIC_INLINE uint32_t LL_PWR_IsEnabledLowPowerRegulatorDeepSleepUDMode(void)
00429 {
00430   return (READ_BIT(PWR->CR, PWR_CR_LPUDS) == (PWR_CR_LPUDS));
00431 }
00432 #endif /* PWR_CR_LPUDS */
00433 
00434 #if defined(PWR_CR_MRLVDS)
00435 /**
00436   * @brief  Enable Main Regulator low voltage Mode
00437   * @rmtoll CR    MRLVDS       LL_PWR_EnableMainRegulatorLowVoltageMode
00438   * @retval None
00439   */
00440 __STATIC_INLINE void LL_PWR_EnableMainRegulatorLowVoltageMode(void)
00441 {
00442   SET_BIT(PWR->CR, PWR_CR_MRLVDS);
00443 }
00444 
00445 /**
00446   * @brief  Disable Main Regulator low voltage Mode
00447   * @rmtoll CR    MRLVDS       LL_PWR_DisableMainRegulatorLowVoltageMode
00448   * @retval None
00449   */
00450 __STATIC_INLINE void LL_PWR_DisableMainRegulatorLowVoltageMode(void)
00451 {
00452   CLEAR_BIT(PWR->CR, PWR_CR_MRLVDS);
00453 }
00454 
00455 /**
00456   * @brief  Check if Main Regulator low voltage Mode is enabled
00457   * @rmtoll CR    MRLVDS       LL_PWR_IsEnabledMainRegulatorLowVoltageMode
00458   * @retval State of bit (1 or 0).
00459   */
00460 __STATIC_INLINE uint32_t LL_PWR_IsEnabledMainRegulatorLowVoltageMode(void)
00461 {
00462   return (READ_BIT(PWR->CR, PWR_CR_MRLVDS) == (PWR_CR_MRLVDS));
00463 }
00464 #endif /* PWR_CR_MRLVDS */
00465 
00466 #if defined(PWR_CR_LPLVDS)
00467 /**
00468   * @brief  Enable Low Power Regulator low voltage Mode
00469   * @rmtoll CR    LPLVDS       LL_PWR_EnableLowPowerRegulatorLowVoltageMode
00470   * @retval None
00471   */
00472 __STATIC_INLINE void LL_PWR_EnableLowPowerRegulatorLowVoltageMode(void)
00473 {
00474   SET_BIT(PWR->CR, PWR_CR_LPLVDS);
00475 }
00476 
00477 /**
00478   * @brief  Disable Low Power Regulator low voltage Mode
00479   * @rmtoll CR    LPLVDS       LL_PWR_DisableLowPowerRegulatorLowVoltageMode
00480   * @retval None
00481   */
00482 __STATIC_INLINE void LL_PWR_DisableLowPowerRegulatorLowVoltageMode(void)
00483 {
00484   CLEAR_BIT(PWR->CR, PWR_CR_LPLVDS);
00485 }
00486 
00487 /**
00488   * @brief  Check if Low Power Regulator low voltage Mode is enabled
00489   * @rmtoll CR    LPLVDS       LL_PWR_IsEnabledLowPowerRegulatorLowVoltageMode
00490   * @retval State of bit (1 or 0).
00491   */
00492 __STATIC_INLINE uint32_t LL_PWR_IsEnabledLowPowerRegulatorLowVoltageMode(void)
00493 {
00494   return (READ_BIT(PWR->CR, PWR_CR_LPLVDS) == (PWR_CR_LPLVDS));
00495 }
00496 #endif /* PWR_CR_LPLVDS */
00497 /**
00498   * @brief  Set the main internal Regulator output voltage
00499   * @rmtoll CR    VOS       LL_PWR_SetRegulVoltageScaling
00500   * @param  VoltageScaling This parameter can be one of the following values:
00501   *         @arg @ref LL_PWR_REGU_VOLTAGE_SCALE1 (*)
00502   *         @arg @ref LL_PWR_REGU_VOLTAGE_SCALE2
00503   *         @arg @ref LL_PWR_REGU_VOLTAGE_SCALE3
00504   *         (*) LL_PWR_REGU_VOLTAGE_SCALE1 is not available for STM32F401xx devices
00505   * @retval None
00506   */
00507 __STATIC_INLINE void LL_PWR_SetRegulVoltageScaling(uint32_t VoltageScaling)
00508 {
00509   MODIFY_REG(PWR->CR, PWR_CR_VOS, VoltageScaling);
00510 }
00511 
00512 /**
00513   * @brief  Get the main internal Regulator output voltage
00514   * @rmtoll CR    VOS       LL_PWR_GetRegulVoltageScaling
00515   * @retval Returned value can be one of the following values:
00516   *         @arg @ref LL_PWR_REGU_VOLTAGE_SCALE1 (*)
00517   *         @arg @ref LL_PWR_REGU_VOLTAGE_SCALE2
00518   *         @arg @ref LL_PWR_REGU_VOLTAGE_SCALE3
00519   *         (*) LL_PWR_REGU_VOLTAGE_SCALE1 is not available for STM32F401xx devices
00520   */
00521 __STATIC_INLINE uint32_t LL_PWR_GetRegulVoltageScaling(void)
00522 {
00523   return (uint32_t)(READ_BIT(PWR->CR, PWR_CR_VOS));
00524 }
00525 /**
00526   * @brief  Enable the Flash Power Down in Stop Mode
00527   * @rmtoll CR    FPDS       LL_PWR_EnableFlashPowerDown
00528   * @retval None
00529   */
00530 __STATIC_INLINE void LL_PWR_EnableFlashPowerDown(void)
00531 {
00532   SET_BIT(PWR->CR, PWR_CR_FPDS);
00533 }
00534 
00535 /**
00536   * @brief  Disable the Flash Power Down in Stop Mode
00537   * @rmtoll CR    FPDS       LL_PWR_DisableFlashPowerDown
00538   * @retval None
00539   */
00540 __STATIC_INLINE void LL_PWR_DisableFlashPowerDown(void)
00541 {
00542   CLEAR_BIT(PWR->CR, PWR_CR_FPDS);
00543 }
00544 
00545 /**
00546   * @brief  Check if the Flash Power Down in Stop Mode is enabled
00547   * @rmtoll CR    FPDS       LL_PWR_IsEnabledFlashPowerDown
00548   * @retval State of bit (1 or 0).
00549   */
00550 __STATIC_INLINE uint32_t LL_PWR_IsEnabledFlashPowerDown(void)
00551 {
00552   return (READ_BIT(PWR->CR, PWR_CR_FPDS) == (PWR_CR_FPDS));
00553 }
00554 
00555 /**
00556   * @brief  Enable access to the backup domain
00557   * @rmtoll CR    DBP       LL_PWR_EnableBkUpAccess
00558   * @retval None
00559   */
00560 __STATIC_INLINE void LL_PWR_EnableBkUpAccess(void)
00561 {
00562   SET_BIT(PWR->CR, PWR_CR_DBP);
00563 }
00564 
00565 /**
00566   * @brief  Disable access to the backup domain
00567   * @rmtoll CR    DBP       LL_PWR_DisableBkUpAccess
00568   * @retval None
00569   */
00570 __STATIC_INLINE void LL_PWR_DisableBkUpAccess(void)
00571 {
00572   CLEAR_BIT(PWR->CR, PWR_CR_DBP);
00573 }
00574 
00575 /**
00576   * @brief  Check if the backup domain is enabled
00577   * @rmtoll CR    DBP       LL_PWR_IsEnabledBkUpAccess
00578   * @retval State of bit (1 or 0).
00579   */
00580 __STATIC_INLINE uint32_t LL_PWR_IsEnabledBkUpAccess(void)
00581 {
00582   return (READ_BIT(PWR->CR, PWR_CR_DBP) == (PWR_CR_DBP));
00583 }
00584 /**
00585   * @brief  Enable the backup Regulator
00586   * @rmtoll CSR    BRE       LL_PWR_EnableBkUpRegulator
00587   * @note The BRE bit of the PWR_CSR register is protected against parasitic write access.
00588   * The LL_PWR_EnableBkUpAccess() must be called before using this API.
00589   * @retval None
00590   */
00591 __STATIC_INLINE void LL_PWR_EnableBkUpRegulator(void)
00592 {
00593   SET_BIT(PWR->CSR, PWR_CSR_BRE);
00594 }
00595 
00596 /**
00597   * @brief  Disable the backup Regulator
00598   * @rmtoll CSR    BRE       LL_PWR_DisableBkUpRegulator
00599   * @note The BRE bit of the PWR_CSR register is protected against parasitic write access.
00600   * The LL_PWR_EnableBkUpAccess() must be called before using this API.
00601   * @retval None
00602   */
00603 __STATIC_INLINE void LL_PWR_DisableBkUpRegulator(void)
00604 {
00605   CLEAR_BIT(PWR->CSR, PWR_CSR_BRE);
00606 }
00607 
00608 /**
00609   * @brief  Check if the backup Regulator is enabled
00610   * @rmtoll CSR    BRE       LL_PWR_IsEnabledBkUpRegulator
00611   * @retval State of bit (1 or 0).
00612   */
00613 __STATIC_INLINE uint32_t LL_PWR_IsEnabledBkUpRegulator(void)
00614 {
00615   return (READ_BIT(PWR->CSR, PWR_CSR_BRE) == (PWR_CSR_BRE));
00616 }
00617 
00618 /**
00619   * @brief  Set voltage Regulator mode during deep sleep mode
00620   * @rmtoll CR    LPDS         LL_PWR_SetRegulModeDS
00621   * @param  RegulMode This parameter can be one of the following values:
00622   *         @arg @ref LL_PWR_REGU_DSMODE_MAIN
00623   *         @arg @ref LL_PWR_REGU_DSMODE_LOW_POWER
00624   * @retval None
00625   */
00626 __STATIC_INLINE void LL_PWR_SetRegulModeDS(uint32_t RegulMode)
00627 {
00628   MODIFY_REG(PWR->CR, PWR_CR_LPDS, RegulMode);
00629 }
00630 
00631 /**
00632   * @brief  Get voltage Regulator mode during deep sleep mode
00633   * @rmtoll CR    LPDS         LL_PWR_GetRegulModeDS
00634   * @retval Returned value can be one of the following values:
00635   *         @arg @ref LL_PWR_REGU_DSMODE_MAIN
00636   *         @arg @ref LL_PWR_REGU_DSMODE_LOW_POWER
00637   */
00638 __STATIC_INLINE uint32_t LL_PWR_GetRegulModeDS(void)
00639 {
00640   return (uint32_t)(READ_BIT(PWR->CR, PWR_CR_LPDS));
00641 }
00642 
00643 /**
00644   * @brief  Set Power Down mode when CPU enters deepsleep
00645   * @rmtoll CR    PDDS         LL_PWR_SetPowerMode\n
00646   * @rmtoll CR    MRUDS        LL_PWR_SetPowerMode\n
00647   * @rmtoll CR    LPUDS        LL_PWR_SetPowerMode\n
00648   * @rmtoll CR    FPDS         LL_PWR_SetPowerMode\n
00649   * @rmtoll CR    MRLVDS       LL_PWR_SetPowerMode\n
00650   * @rmtoll CR    LPlVDS       LL_PWR_SetPowerMode\n
00651   * @rmtoll CR    FPDS         LL_PWR_SetPowerMode\n
00652   * @rmtoll CR    LPDS         LL_PWR_SetPowerMode
00653   * @param  PDMode This parameter can be one of the following values:
00654   *         @arg @ref LL_PWR_MODE_STOP_MAINREGU
00655   *         @arg @ref LL_PWR_MODE_STOP_LPREGU
00656   *         @arg @ref LL_PWR_MODE_STOP_MAINREGU_UNDERDRIVE (*)
00657   *         @arg @ref LL_PWR_MODE_STOP_LPREGU_UNDERDRIVE (*)
00658   *         @arg @ref LL_PWR_MODE_STOP_MAINREGU_DEEPSLEEP (*)
00659   *         @arg @ref LL_PWR_MODE_STOP_LPREGU_DEEPSLEEP (*)
00660   *
00661   *         (*) not available on all devices
00662   *         @arg @ref LL_PWR_MODE_STANDBY
00663   * @retval None
00664   */
00665 __STATIC_INLINE void LL_PWR_SetPowerMode(uint32_t PDMode)
00666 {
00667 #if defined(PWR_CR_MRUDS) && defined(PWR_CR_LPUDS) && defined(PWR_CR_FPDS)
00668   MODIFY_REG(PWR->CR, (PWR_CR_PDDS | PWR_CR_LPDS | PWR_CR_FPDS | PWR_CR_LPUDS | PWR_CR_MRUDS), PDMode);
00669 #elif defined(PWR_CR_MRLVDS) && defined(PWR_CR_LPLVDS) && defined(PWR_CR_FPDS)
00670   MODIFY_REG(PWR->CR, (PWR_CR_PDDS | PWR_CR_LPDS | PWR_CR_FPDS | PWR_CR_LPLVDS | PWR_CR_MRLVDS), PDMode);
00671 #else
00672   MODIFY_REG(PWR->CR, (PWR_CR_PDDS| PWR_CR_LPDS), PDMode);
00673 #endif /* PWR_CR_MRUDS && PWR_CR_LPUDS && PWR_CR_FPDS */
00674 }
00675 
00676 /**
00677   * @brief  Get Power Down mode when CPU enters deepsleep
00678   * @rmtoll CR    PDDS         LL_PWR_GetPowerMode\n
00679   * @rmtoll CR    MRUDS        LL_PWR_GetPowerMode\n
00680   * @rmtoll CR    LPUDS        LL_PWR_GetPowerMode\n
00681   * @rmtoll CR    FPDS         LL_PWR_GetPowerMode\n
00682   * @rmtoll CR    MRLVDS       LL_PWR_GetPowerMode\n
00683   * @rmtoll CR    LPLVDS       LL_PWR_GetPowerMode\n
00684   * @rmtoll CR    FPDS         LL_PWR_GetPowerMode\n
00685   * @rmtoll CR    LPDS         LL_PWR_GetPowerMode
00686   * @retval Returned value can be one of the following values:
00687   *         @arg @ref LL_PWR_MODE_STOP_MAINREGU
00688   *         @arg @ref LL_PWR_MODE_STOP_LPREGU
00689   *         @arg @ref LL_PWR_MODE_STOP_MAINREGU_UNDERDRIVE (*)
00690   *         @arg @ref LL_PWR_MODE_STOP_LPREGU_UNDERDRIVE (*)
00691   *         @arg @ref LL_PWR_MODE_STOP_MAINREGU_DEEPSLEEP (*)
00692   *         @arg @ref LL_PWR_MODE_STOP_LPREGU_DEEPSLEEP (*)
00693   *
00694   *         (*) not available on all devices
00695   *         @arg @ref LL_PWR_MODE_STANDBY
00696   */
00697 __STATIC_INLINE uint32_t LL_PWR_GetPowerMode(void)
00698 {
00699 #if defined(PWR_CR_MRUDS) && defined(PWR_CR_LPUDS) && defined(PWR_CR_FPDS)
00700   return (uint32_t)(READ_BIT(PWR->CR, (PWR_CR_PDDS | PWR_CR_LPDS | PWR_CR_FPDS | PWR_CR_LPUDS | PWR_CR_MRUDS)));
00701 #elif defined(PWR_CR_MRLVDS) && defined(PWR_CR_LPLVDS) && defined(PWR_CR_FPDS)
00702   return (uint32_t)(READ_BIT(PWR->CR, (PWR_CR_PDDS | PWR_CR_LPDS | PWR_CR_FPDS | PWR_CR_LPLVDS | PWR_CR_MRLVDS)));
00703 #else
00704   return (uint32_t)(READ_BIT(PWR->CR, (PWR_CR_PDDS| PWR_CR_LPDS)));
00705 #endif /* PWR_CR_MRUDS && PWR_CR_LPUDS && PWR_CR_FPDS */
00706 }
00707 
00708 /**
00709   * @brief  Configure the voltage threshold detected by the Power Voltage Detector
00710   * @rmtoll CR    PLS       LL_PWR_SetPVDLevel
00711   * @param  PVDLevel This parameter can be one of the following values:
00712   *         @arg @ref LL_PWR_PVDLEVEL_0
00713   *         @arg @ref LL_PWR_PVDLEVEL_1
00714   *         @arg @ref LL_PWR_PVDLEVEL_2
00715   *         @arg @ref LL_PWR_PVDLEVEL_3
00716   *         @arg @ref LL_PWR_PVDLEVEL_4
00717   *         @arg @ref LL_PWR_PVDLEVEL_5
00718   *         @arg @ref LL_PWR_PVDLEVEL_6
00719   *         @arg @ref LL_PWR_PVDLEVEL_7
00720   * @retval None
00721   */
00722 __STATIC_INLINE void LL_PWR_SetPVDLevel(uint32_t PVDLevel)
00723 {
00724   MODIFY_REG(PWR->CR, PWR_CR_PLS, PVDLevel);
00725 }
00726 
00727 /**
00728   * @brief  Get the voltage threshold detection
00729   * @rmtoll CR    PLS       LL_PWR_GetPVDLevel
00730   * @retval Returned value can be one of the following values:
00731   *         @arg @ref LL_PWR_PVDLEVEL_0
00732   *         @arg @ref LL_PWR_PVDLEVEL_1
00733   *         @arg @ref LL_PWR_PVDLEVEL_2
00734   *         @arg @ref LL_PWR_PVDLEVEL_3
00735   *         @arg @ref LL_PWR_PVDLEVEL_4
00736   *         @arg @ref LL_PWR_PVDLEVEL_5
00737   *         @arg @ref LL_PWR_PVDLEVEL_6
00738   *         @arg @ref LL_PWR_PVDLEVEL_7
00739   */
00740 __STATIC_INLINE uint32_t LL_PWR_GetPVDLevel(void)
00741 {
00742   return (uint32_t)(READ_BIT(PWR->CR, PWR_CR_PLS));
00743 }
00744 
00745 /**
00746   * @brief  Enable Power Voltage Detector
00747   * @rmtoll CR    PVDE       LL_PWR_EnablePVD
00748   * @retval None
00749   */
00750 __STATIC_INLINE void LL_PWR_EnablePVD(void)
00751 {
00752   SET_BIT(PWR->CR, PWR_CR_PVDE);
00753 }
00754 
00755 /**
00756   * @brief  Disable Power Voltage Detector
00757   * @rmtoll CR    PVDE       LL_PWR_DisablePVD
00758   * @retval None
00759   */
00760 __STATIC_INLINE void LL_PWR_DisablePVD(void)
00761 {
00762   CLEAR_BIT(PWR->CR, PWR_CR_PVDE);
00763 }
00764 
00765 /**
00766   * @brief  Check if Power Voltage Detector is enabled
00767   * @rmtoll CR    PVDE       LL_PWR_IsEnabledPVD
00768   * @retval State of bit (1 or 0).
00769   */
00770 __STATIC_INLINE uint32_t LL_PWR_IsEnabledPVD(void)
00771 {
00772   return (READ_BIT(PWR->CR, PWR_CR_PVDE) == (PWR_CR_PVDE));
00773 }
00774 
00775 /**
00776   * @brief  Enable the WakeUp PINx functionality
00777   * @rmtoll CSR   EWUP        LL_PWR_EnableWakeUpPin\n
00778   * @rmtoll CSR   EWUP1       LL_PWR_EnableWakeUpPin\n
00779   * @rmtoll CSR   EWUP2       LL_PWR_EnableWakeUpPin\n
00780   * @rmtoll CSR   EWUP3       LL_PWR_EnableWakeUpPin
00781   * @param  WakeUpPin This parameter can be one of the following values:
00782   *         @arg @ref LL_PWR_WAKEUP_PIN1
00783   *         @arg @ref LL_PWR_WAKEUP_PIN2 (*)
00784   *         @arg @ref LL_PWR_WAKEUP_PIN3 (*)
00785   *
00786   *         (*) not available on all devices
00787   * @retval None
00788   */
00789 __STATIC_INLINE void LL_PWR_EnableWakeUpPin(uint32_t WakeUpPin)
00790 {
00791   SET_BIT(PWR->CSR, WakeUpPin);
00792 }
00793 
00794 /**
00795   * @brief  Disable the WakeUp PINx functionality
00796   * @rmtoll CSR   EWUP        LL_PWR_DisableWakeUpPin\n
00797   * @rmtoll CSR   EWUP1       LL_PWR_DisableWakeUpPin\n
00798   * @rmtoll CSR   EWUP2       LL_PWR_DisableWakeUpPin\n
00799   * @rmtoll CSR   EWUP3       LL_PWR_DisableWakeUpPin
00800   * @param  WakeUpPin This parameter can be one of the following values:
00801   *         @arg @ref LL_PWR_WAKEUP_PIN1
00802   *         @arg @ref LL_PWR_WAKEUP_PIN2 (*)
00803   *         @arg @ref LL_PWR_WAKEUP_PIN3 (*)
00804   *
00805   *         (*) not available on all devices
00806   * @retval None
00807   */
00808 __STATIC_INLINE void LL_PWR_DisableWakeUpPin(uint32_t WakeUpPin)
00809 {
00810   CLEAR_BIT(PWR->CSR, WakeUpPin);
00811 }
00812 
00813 /**
00814   * @brief  Check if the WakeUp PINx functionality is enabled
00815   * @rmtoll CSR   EWUP        LL_PWR_IsEnabledWakeUpPin\n
00816   * @rmtoll CSR   EWUP1       LL_PWR_IsEnabledWakeUpPin\n
00817   * @rmtoll CSR   EWUP2       LL_PWR_IsEnabledWakeUpPin\n
00818   * @rmtoll CSR   EWUP3       LL_PWR_IsEnabledWakeUpPin
00819   * @param  WakeUpPin This parameter can be one of the following values:
00820   *         @arg @ref LL_PWR_WAKEUP_PIN1
00821   *         @arg @ref LL_PWR_WAKEUP_PIN2 (*)
00822   *         @arg @ref LL_PWR_WAKEUP_PIN3 (*)
00823   *
00824   *         (*) not available on all devices
00825   * @retval State of bit (1 or 0).
00826   */
00827 __STATIC_INLINE uint32_t LL_PWR_IsEnabledWakeUpPin(uint32_t WakeUpPin)
00828 {
00829   return (READ_BIT(PWR->CSR, WakeUpPin) == (WakeUpPin));
00830 }
00831 
00832 
00833 /**
00834   * @}
00835   */
00836 
00837 /** @defgroup PWR_LL_EF_FLAG_Management FLAG_Management
00838   * @{
00839   */
00840 
00841 /**
00842   * @brief  Get Wake-up Flag
00843   * @rmtoll CSR   WUF       LL_PWR_IsActiveFlag_WU
00844   * @retval State of bit (1 or 0).
00845   */
00846 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU(void)
00847 {
00848   return (READ_BIT(PWR->CSR, PWR_CSR_WUF) == (PWR_CSR_WUF));
00849 }
00850 
00851 /**
00852   * @brief  Get Standby Flag
00853   * @rmtoll CSR   SBF       LL_PWR_IsActiveFlag_SB
00854   * @retval State of bit (1 or 0).
00855   */
00856 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_SB(void)
00857 {
00858   return (READ_BIT(PWR->CSR, PWR_CSR_SBF) == (PWR_CSR_SBF));
00859 }
00860 
00861 /**
00862   * @brief  Get Backup Regulator ready Flag
00863   * @rmtoll CSR   BRR       LL_PWR_IsActiveFlag_BRR
00864   * @retval State of bit (1 or 0).
00865   */
00866 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_BRR(void)
00867 {
00868   return (READ_BIT(PWR->CSR, PWR_CSR_BRR) == (PWR_CSR_BRR));
00869 }
00870 /**
00871   * @brief  Indicate whether VDD voltage is below the selected PVD threshold
00872   * @rmtoll CSR   PVDO       LL_PWR_IsActiveFlag_PVDO
00873   * @retval State of bit (1 or 0).
00874   */
00875 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_PVDO(void)
00876 {
00877   return (READ_BIT(PWR->CSR, PWR_CSR_PVDO) == (PWR_CSR_PVDO));
00878 }
00879 
00880 /**
00881   * @brief  Indicate whether the Regulator is ready in the selected voltage range or if its output voltage is still changing to the required voltage level
00882   * @rmtoll CSR   VOS       LL_PWR_IsActiveFlag_VOS
00883   * @retval State of bit (1 or 0).
00884   */
00885 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_VOS(void)
00886 {
00887   return (READ_BIT(PWR->CSR, LL_PWR_CSR_VOS) == (LL_PWR_CSR_VOS));
00888 }
00889 #if defined(PWR_CR_ODEN)
00890 /**
00891   * @brief  Indicate whether the Over-Drive mode is ready or not
00892   * @rmtoll CSR   ODRDY       LL_PWR_IsActiveFlag_OD
00893   * @retval State of bit (1 or 0).
00894   */
00895 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_OD(void)
00896 {
00897   return (READ_BIT(PWR->CSR, PWR_CSR_ODRDY) == (PWR_CSR_ODRDY));
00898 }
00899 #endif /* PWR_CR_ODEN */
00900 
00901 #if defined(PWR_CR_ODSWEN)
00902 /**
00903   * @brief  Indicate whether the Over-Drive mode switching is ready or not
00904   * @rmtoll CSR   ODSWRDY       LL_PWR_IsActiveFlag_ODSW
00905   * @retval State of bit (1 or 0).
00906   */
00907 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_ODSW(void)
00908 {
00909   return (READ_BIT(PWR->CSR, PWR_CSR_ODSWRDY) == (PWR_CSR_ODSWRDY));
00910 }
00911 #endif /* PWR_CR_ODSWEN */
00912 
00913 #if defined(PWR_CR_UDEN)
00914 /**
00915   * @brief  Indicate whether the Under-Drive mode is ready or not
00916   * @rmtoll CSR   UDRDY       LL_PWR_IsActiveFlag_UD
00917   * @retval State of bit (1 or 0).
00918   */
00919 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_UD(void)
00920 {
00921   return (READ_BIT(PWR->CSR, PWR_CSR_UDRDY) == (PWR_CSR_UDRDY));
00922 }
00923 #endif /* PWR_CR_UDEN */
00924 /**
00925   * @brief  Clear Standby Flag
00926   * @rmtoll CR   CSBF       LL_PWR_ClearFlag_SB
00927   * @retval None
00928   */
00929 __STATIC_INLINE void LL_PWR_ClearFlag_SB(void)
00930 {
00931   SET_BIT(PWR->CR, PWR_CR_CSBF);
00932 }
00933 
00934 /**
00935   * @brief  Clear Wake-up Flags
00936   * @rmtoll CR   CWUF       LL_PWR_ClearFlag_WU
00937   * @retval None
00938   */
00939 __STATIC_INLINE void LL_PWR_ClearFlag_WU(void)
00940 {
00941   SET_BIT(PWR->CR, PWR_CR_CWUF);
00942 }
00943 #if defined(PWR_CSR_UDRDY)
00944 /**
00945   * @brief  Clear Under-Drive ready Flag
00946   * @rmtoll CSR          UDRDY         LL_PWR_ClearFlag_UD
00947   * @retval None
00948   */
00949 __STATIC_INLINE void LL_PWR_ClearFlag_UD(void)
00950 {
00951   WRITE_REG(PWR->CSR, PWR_CSR_UDRDY);
00952 }
00953 #endif /* PWR_CSR_UDRDY */
00954 
00955 /**
00956   * @}
00957   */
00958 
00959 #if defined(USE_FULL_LL_DRIVER)
00960 /** @defgroup PWR_LL_EF_Init De-initialization function
00961   * @{
00962   */
00963 ErrorStatus LL_PWR_DeInit(void);
00964 /**
00965   * @}
00966   */
00967 #endif /* USE_FULL_LL_DRIVER */
00968 
00969 /**
00970   * @}
00971   */
00972 
00973 /**
00974   * @}
00975   */
00976 
00977 #endif /* defined(PWR) */
00978 
00979 /**
00980   * @}
00981   */
00982 
00983 #ifdef __cplusplus
00984 }
00985 #endif
00986 
00987 #endif /* __STM32F4xx_LL_PWR_H */
00988 
00989 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/