STM32H735xx HAL User Manual
stm32h7xx_ll_pwr.h
Go to the documentation of this file.
00001 /**
00002   ******************************************************************************
00003   * @file    stm32h7xx_ll_pwr.h
00004   * @author  MCD Application Team
00005   * @brief   Header file of PWR LL module.
00006   ******************************************************************************
00007   * @attention
00008   *
00009   * Copyright (c) 2017 STMicroelectronics.
00010   * All rights reserved.
00011   *
00012   * This software is licensed under terms that can be found in the LICENSE file
00013   * in the root directory of this software component.
00014   * If no LICENSE file comes with this software, it is provided AS-IS.
00015   *
00016   ******************************************************************************
00017   */
00018 
00019 /* Define to prevent recursive inclusion -------------------------------------*/
00020 #ifndef STM32H7xx_LL_PWR_H
00021 #define STM32H7xx_LL_PWR_H
00022 
00023 #ifdef __cplusplus
00024 extern "C" {
00025 #endif
00026 
00027 /* Includes ------------------------------------------------------------------*/
00028 #include "stm32h7xx.h"
00029 
00030 /** @addtogroup STM32H7xx_LL_Driver
00031   * @{
00032   */
00033 
00034 #if defined (PWR)
00035 
00036 /** @defgroup PWR_LL PWR
00037   * @{
00038   */
00039 
00040 /* Private types -------------------------------------------------------------*/
00041 /* Private variables ---------------------------------------------------------*/
00042 /* Private constants ---------------------------------------------------------*/
00043 /** @defgroup PWR_LL_Private_Constants PWR Private Constants
00044   * @{
00045   */
00046 
00047 /** @defgroup PWR_LL_WAKEUP_PIN_OFFSET Wake-Up Pins register offsets Defines
00048   * @brief    Flags defines which can be used with LL_PWR_WriteReg function
00049   * @{
00050   */
00051 /* Wake-Up Pins PWR register offsets */
00052 #define LL_PWR_WAKEUP_PINS_PULL_SHIFT_OFFSET    2UL
00053 #define LL_PWR_WAKEUP_PINS_MAX_SHIFT_MASK       0x1FU
00054 /**
00055   * @}
00056   */
00057 /**
00058   * @}
00059   */
00060 /* Private macros ------------------------------------------------------------*/
00061 /* Exported types ------------------------------------------------------------*/
00062 /* Exported constants --------------------------------------------------------*/
00063 /** @defgroup PWR_LL_Exported_Constants PWR Exported Constants
00064   * @{
00065   */
00066 
00067 /** @defgroup PWR_LL_EC_CLEAR_FLAG Clear Flags Defines
00068   * @brief    Flags defines which can be used with LL_PWR_WriteReg function
00069   * @{
00070   */
00071 #define LL_PWR_FLAG_CPU_CSSF          PWR_CPUCR_CSSF      /*!< Clear flags for CPU  */
00072 #if defined (DUAL_CORE)
00073 #define LL_PWR_FLAG_CPU2_CSSF         PWR_CPU2CR_CSSF     /*!< Clear flags for CPU2 */
00074 #endif /* DUAL_CORE */
00075 #define LL_PWR_FLAG_WKUPCR_WKUPC6     PWR_WKUPCR_WKUPC6   /*!< Clear PC1 WKUP flag  */
00076 #if defined (PWR_WKUPCR_WKUPC5)
00077 #define LL_PWR_FLAG_WKUPCR_WKUPC5     PWR_WKUPCR_WKUPC5   /*!< Clear PI11 WKUP flag */
00078 #endif /* defined (PWR_WKUPCR_WKUPC5) */
00079 #define LL_PWR_FLAG_WKUPCR_WKUPC4     PWR_WKUPCR_WKUPC4   /*!< Clear PC13 WKUP flag */
00080 #if defined (PWR_WKUPCR_WKUPC3)
00081 #define LL_PWR_FLAG_WKUPCR_WKUPC3     PWR_WKUPCR_WKUPC3   /*!< Clear PI8 WKUP flag  */
00082 #endif /* defined (PWR_WKUPCR_WKUPC3) */
00083 #define LL_PWR_FLAG_WKUPCR_WKUPC2     PWR_WKUPCR_WKUPC2   /*!< Clear PA2 WKUP flag  */
00084 #define LL_PWR_FLAG_WKUPCR_WKUPC1     PWR_WKUPCR_WKUPC1   /*!< Clear PA0 WKUP flag  */
00085 /**
00086   * @}
00087   */
00088 
00089 /** @defgroup PWR_LL_EC_GET_FLAG Get Flags Defines
00090   * @brief    Flags defines which can be used with LL_PWR_ReadReg function
00091   * @{
00092   */
00093 #define LL_PWR_FLAG_AVDO              PWR_CSR1_AVDO       /*!< Analog voltage detector output on VDDA flag                          */
00094 #define LL_PWR_FLAG_PVDO              PWR_CSR1_PVDO       /*!< Programmable voltage detect output flag                              */
00095 #define LL_PWR_FLAG_ACTVOS            PWR_CSR1_ACTVOS     /*!< Current VOS applied for VCORE voltage scaling flag                   */
00096 #define LL_PWR_FLAG_ACTVOSRDY         PWR_CSR1_ACTVOSRDY  /*!< Ready bit for current actual used VOS for VCORE voltage scaling flag */
00097 #if defined (PWR_CSR1_MMCVDO)
00098 #define LL_PWR_FLAG_MMCVDO            PWR_CSR1_MMCVDO     /*!< Voltage detector output on VDDMMC flag                               */
00099 #endif /* PWR_CSR1_MMCVDO */
00100 
00101 #define LL_PWR_FLAG_TEMPH             PWR_CR2_TEMPH       /*!< Temperature high threshold flag */
00102 #define LL_PWR_FLAG_TEMPL             PWR_CR2_TEMPL       /*!< Temperature low threshold flag  */
00103 #define LL_PWR_FLAG_VBATH             PWR_CR2_VBATH       /*!< VBAT high threshold flag        */
00104 #define LL_PWR_FLAG_VBATL             PWR_CR2_VBATL       /*!< VBAT low threshold flag         */
00105 #define LL_PWR_FLAG_BRRDY             PWR_CR2_BRRDY       /*!< Backup Regulator ready flag     */
00106 
00107 #define LL_PWR_FLAG_USBRDY            PWR_CR3_USB33RDY    /*!< USB supply ready flag           */
00108 #define LL_PWR_FLAG_SMPSEXTRDY        PWR_CR3_SMPSEXTRDY  /*!< SMPS External supply ready flag */
00109 
00110 #if defined (PWR_CPUCR_SBF_D2)
00111 #define LL_PWR_FLAG_CPU_SBF_D2        PWR_CPUCR_SBF_D2    /*!< D2 domain DSTANDBY Flag  */
00112 #endif /* PWR_CPUCR_SBF_D2 */
00113 #if defined (PWR_CPUCR_SBF_D1)
00114 #define LL_PWR_FLAG_CPU_SBF_D1        PWR_CPUCR_SBF_D1    /*!< D1 domain DSTANDBY Flag  */
00115 #endif /* PWR_CPUCR_SBF_D1 */
00116 #define LL_PWR_FLAG_CPU_SBF           PWR_CPUCR_SBF       /*!< System STANDBY Flag      */
00117 #define LL_PWR_FLAG_CPU_STOPF         PWR_CPUCR_STOPF     /*!< STOP Flag                */
00118 #if defined (DUAL_CORE)
00119 #define LL_PWR_FLAG_CPU_HOLD2F        PWR_CPUCR_HOLD2F    /*!< CPU2 in hold wakeup flag */
00120 #endif /* DUAL_CORE */
00121 
00122 #if defined (DUAL_CORE)
00123 #define LL_PWR_FLAG_CPU2_SBF_D2       PWR_CPU2CR_SBF_D2   /*!< D2 domain DSTANDBY Flag  */
00124 #define LL_PWR_FLAG_CPU2_SBF_D1       PWR_CPU2CR_SBF_D1   /*!< D1 domain DSTANDBY Flag  */
00125 #define LL_PWR_FLAG_CPU2_SBF          PWR_CPU2CR_SBF      /*!< System STANDBY Flag      */
00126 #define LL_PWR_FLAG_CPU2_STOPF        PWR_CPU2CR_STOPF    /*!< STOP Flag                */
00127 #define LL_PWR_FLAG_CPU2_HOLD1F       PWR_CPU2CR_HOLD1F   /*!< CPU1 in hold wakeup flag */
00128 #endif /* DUAL_CORE */
00129 
00130 #if defined (PWR_CPUCR_PDDS_D2)
00131 #define LL_PWR_D3CR_VOSRDY            PWR_D3CR_VOSRDY     /*!< Voltage scaling ready flag */
00132 #else
00133 #define LL_PWR_SRDCR_VOSRDY           PWR_SRDCR_VOSRDY    /*!< Voltage scaling ready flag */
00134 #endif /* PWR_CPUCR_PDDS_D2 */
00135 
00136 #define LL_PWR_WKUPFR_WKUPF6          PWR_WKUPFR_WKUPF6   /*!< Wakeup flag on PC1  */
00137 #if defined (PWR_WKUPFR_WKUPF5)
00138 #define LL_PWR_WKUPFR_WKUPF5          PWR_WKUPFR_WKUPF5   /*!< Wakeup flag on PI11 */
00139 #endif /* defined (PWR_WKUPFR_WKUPF5) */
00140 #define LL_PWR_WKUPFR_WKUPF4          PWR_WKUPFR_WKUPF4   /*!< Wakeup flag on PC13 */
00141 #if defined (PWR_WKUPFR_WKUPF3)
00142 #define LL_PWR_WKUPFR_WKUPF3          PWR_WKUPFR_WKUPF3   /*!< Wakeup flag on PI8  */
00143 #endif /* defined (PWR_WKUPFR_WKUPF3) */
00144 #define LL_PWR_WKUPFR_WKUPF2          PWR_WKUPFR_WKUPF2   /*!< Wakeup flag on PA2  */
00145 #define LL_PWR_WKUPFR_WKUPF1          PWR_WKUPFR_WKUPF1   /*!< Wakeup flag on PA0  */
00146 /**
00147   * @}
00148   */
00149 
00150 /** @defgroup PWR_LL_EC_MODE_PWR Power mode
00151   * @{
00152   */
00153 #if defined (PWR_CPUCR_PDDS_D2)
00154 #define LL_PWR_CPU_MODE_D1STOP        0x00000000U           /*!< Enter D1 domain to Stop mode when the CPU enters deepsleep       */
00155 #define LL_PWR_CPU_MODE_D1STANDBY     PWR_CPUCR_PDDS_D1     /*!< Enter D1 domain to Standby mode when the CPU enters deepsleep    */
00156 #else
00157 #define LL_PWR_CPU_MODE_CDSTOP        0x00000000U           /*!< Enter CD domain to Stop mode when the CPU enters deepsleep       */
00158 #define LL_PWR_CPU_MODE_CDSTOP2       PWR_CPUCR_RETDS_CD    /*!< Enter CD domain to Stop2 mode when the CPU enters deepsleep      */
00159 #endif /* PWR_CPUCR_PDDS_D2 */
00160 
00161 #if defined (PWR_CPUCR_PDDS_D2)
00162 #define LL_PWR_CPU_MODE_D2STOP        0x00000000U           /*!< Enter D2 domain to Stop mode when the CPU enters deepsleep       */
00163 #define LL_PWR_CPU_MODE_D2STANDBY     PWR_CPUCR_PDDS_D2     /*!< Enter D2 domain to Standby mode when the CPU enters deepsleep    */
00164 #endif /* PWR_CPUCR_PDDS_D2 */
00165 
00166 #if defined (PWR_CPUCR_PDDS_D2)
00167 #define LL_PWR_CPU_MODE_D3RUN         PWR_CPUCR_RUN_D3      /*!< Keep system D3 domain in Run mode when the CPU enter deepsleep   */
00168 #define LL_PWR_CPU_MODE_D3STOP        0x00000000U           /*!< Enter D3 domain to Stop mode when the CPU enters deepsleep       */
00169 #define LL_PWR_CPU_MODE_D3STANDBY     PWR_CPUCR_PDDS_D3     /*!< Enter D3 domain to Standby mode when the CPU enters deepsleep    */
00170 #else
00171 #define LL_PWR_CPU_MODE_SRDRUN        PWR_CPUCR_RUN_SRD     /*!< Keep system SRD domain in Run mode when the CPU enter deepsleep  */
00172 #define LL_PWR_CPU_MODE_SRDSTOP       0x00000000U           /*!< Enter SRD domain to Stop mode when the CPU enters deepsleep      */
00173 #define LL_PWR_CPU_MODE_SRDSTANDBY    PWR_CPUCR_PDDS_SRD    /*!< Enter SRD domain to Standby mode when the CPU enters deepsleep   */
00174 #endif /* PWR_CPUCR_PDDS_D2 */
00175 
00176 #if defined (DUAL_CORE)
00177 #define LL_PWR_CPU2_MODE_D1STOP       0x00000000U           /*!< Enter D1 domain to Stop mode when the CPU2 enters deepsleep      */
00178 #define LL_PWR_CPU2_MODE_D1STANDBY    PWR_CPU2CR_PDDS_D1    /*!< Enter D1 domain to Standby mode when the CPU2 enters deepsleep   */
00179 #define LL_PWR_CPU2_MODE_D2STOP       0x00000000U           /*!< Enter D2 domain to Stop mode when the CPU2 enters deepsleep      */
00180 #define LL_PWR_CPU2_MODE_D2STANDBY    PWR_CPU2CR_PDDS_D2    /*!< Enter D2 domain to Standby mode when the CPU2 enters deepsleep   */
00181 #define LL_PWR_CPU2_MODE_D3RUN        PWR_CPU2CR_RUN_D3     /*!< Keep system D3 domain in RUN mode when the CPU2 enter deepsleep  */
00182 #define LL_PWR_CPU2_MODE_D3STOP       0x00000000U           /*!< Enter D3 domain to Stop mode when the CPU2 enters deepsleep      */
00183 #define LL_PWR_CPU2_MODE_D3STANDBY    PWR_CPU2CR_PDDS_D3    /*!< Enter D3 domain to Standby mode when the CPU2 enter deepsleep    */
00184 #endif /* DUAL_CORE */
00185 /**
00186   * @}
00187   */
00188 
00189 /** @defgroup PWR_LL_EC_REGU_VOLTAGE Run mode Regulator Voltage Scaling
00190   * @{
00191   */
00192 #if defined (PWR_CPUCR_PDDS_D2)
00193 #define LL_PWR_REGU_VOLTAGE_SCALE3      PWR_D3CR_VOS_0                    /*!< Select voltage scale 3 */
00194 #define LL_PWR_REGU_VOLTAGE_SCALE2      PWR_D3CR_VOS_1                    /*!< Select voltage scale 2 */
00195 #define LL_PWR_REGU_VOLTAGE_SCALE1      (PWR_D3CR_VOS_0 | PWR_D3CR_VOS_1) /*!< Select voltage scale 1 */
00196 #if defined (SYSCFG_PWRCR_ODEN) /* STM32H74xxx and STM32H75xxx lines */
00197 #define LL_PWR_REGU_VOLTAGE_SCALE0      (PWR_D3CR_VOS_0 | PWR_D3CR_VOS_1) /*!< Select voltage scale 0 */
00198 #else
00199 #define LL_PWR_REGU_VOLTAGE_SCALE0      0x00000000U                       /*!< Select voltage scale 0 */
00200 #endif /* defined (SYSCFG_PWRCR_ODEN) */
00201 #else
00202 #define LL_PWR_REGU_VOLTAGE_SCALE3      0x00000000U                       /*!< Select voltage scale 3 */
00203 #define LL_PWR_REGU_VOLTAGE_SCALE2      PWR_D3CR_VOS_0                    /*!< Select voltage scale 2 */
00204 #define LL_PWR_REGU_VOLTAGE_SCALE1      PWR_D3CR_VOS_1                    /*!< Select voltage scale 1 */
00205 #define LL_PWR_REGU_VOLTAGE_SCALE0      (PWR_D3CR_VOS_0 | PWR_D3CR_VOS_1) /*!< Select voltage scale 0 */
00206 #endif /* PWR_CPUCR_PDDS_D2 */
00207 /**
00208   * @}
00209   */
00210 
00211 /** @defgroup PWR_LL_EC_STOP_MODE_REGU_VOLTAGE Stop mode Regulator Voltage Scaling
00212   * @{
00213   */
00214 #define LL_PWR_REGU_VOLTAGE_SVOS_SCALE5   PWR_CR1_SVOS_0                    /*!< Select voltage scale 5 when system enters STOP mode */
00215 #define LL_PWR_REGU_VOLTAGE_SVOS_SCALE4   PWR_CR1_SVOS_1                    /*!< Select voltage scale 4 when system enters STOP mode */
00216 #define LL_PWR_REGU_VOLTAGE_SVOS_SCALE3   (PWR_CR1_SVOS_0 | PWR_CR1_SVOS_1) /*!< Select voltage scale 3 when system enters STOP mode */
00217 /**
00218   * @}
00219   */
00220 
00221 /** @defgroup PWR_LL_EC_REGU_MODE_DS_MODE  Regulator Mode In Deep Sleep Mode
00222   * @{
00223   */
00224 #define LL_PWR_REGU_DSMODE_MAIN           0x00000000U   /*!< Voltage Regulator in main mode during deepsleep mode      */
00225 #define LL_PWR_REGU_DSMODE_LOW_POWER      PWR_CR1_LPDS  /*!< Voltage Regulator in low-power mode during deepsleep mode */
00226 /**
00227   * @}
00228   */
00229 
00230 /** @defgroup PWR_LL_EC_PVDLEVEL Power Digital Voltage Level Detector
00231   * @{
00232   */
00233 #define LL_PWR_PVDLEVEL_0   PWR_CR1_PLS_LEV0  /*!< Voltage threshold detected by PVD 1.95 V */
00234 #define LL_PWR_PVDLEVEL_1   PWR_CR1_PLS_LEV1  /*!< Voltage threshold detected by PVD 2.1 V  */
00235 #define LL_PWR_PVDLEVEL_2   PWR_CR1_PLS_LEV2  /*!< Voltage threshold detected by PVD 2.25 V */
00236 #define LL_PWR_PVDLEVEL_3   PWR_CR1_PLS_LEV3  /*!< Voltage threshold detected by PVD 2.4 V  */
00237 #define LL_PWR_PVDLEVEL_4   PWR_CR1_PLS_LEV4  /*!< Voltage threshold detected by PVD 2.55 V */
00238 #define LL_PWR_PVDLEVEL_5   PWR_CR1_PLS_LEV5  /*!< Voltage threshold detected by PVD 2.7 V  */
00239 #define LL_PWR_PVDLEVEL_6   PWR_CR1_PLS_LEV6  /*!< Voltage threshold detected by PVD 2.85 V */
00240 #define LL_PWR_PVDLEVEL_7   PWR_CR1_PLS_LEV7  /*!< External voltage level on PVD_IN pin, compared to internal VREFINT level. */
00241 /**
00242   * @}
00243   */
00244 
00245 /** @defgroup PWR_LL_EC_AVDLEVEL Power Analog Voltage Level Detector
00246   * @{
00247   */
00248 #define LL_PWR_AVDLEVEL_0   PWR_CR1_ALS_LEV0  /*!< Analog Voltage threshold detected by AVD 1.7 V */
00249 #define LL_PWR_AVDLEVEL_1   PWR_CR1_ALS_LEV1  /*!< Analog Voltage threshold detected by AVD 2.1 V */
00250 #define LL_PWR_AVDLEVEL_2   PWR_CR1_ALS_LEV2  /*!< Analog Voltage threshold detected by AVD 2.5 V */
00251 #define LL_PWR_AVDLEVEL_3   PWR_CR1_ALS_LEV3  /*!< Analog Voltage threshold detected by AVD 2.8 V */
00252 
00253 /**
00254   * @}
00255   */
00256 
00257 /** @defgroup PWR_LL_EC_BATT_CHARG_RESISTOR Battery Charge Resistor
00258   * @{
00259   */
00260 #define LL_PWR_BATT_CHARG_RESISTOR_5K     0x00000000U   /*!< Charge the Battery through a 5 kO resistor    */
00261 #define LL_PWR_BATT_CHARGRESISTOR_1_5K    PWR_CR3_VBRS  /*!< Charge the Battery through a 1.5 kO resistor  */
00262 /**
00263   * @}
00264   */
00265 
00266 /** @defgroup PWR_LL_EC_WAKEUP_PIN  Wakeup Pins
00267   * @{
00268   */
00269 #define LL_PWR_WAKEUP_PIN1    PWR_WKUPEPR_WKUPEN1  /*!< Wake-Up pin 1 : PA0  */
00270 #define LL_PWR_WAKEUP_PIN2    PWR_WKUPEPR_WKUPEN2  /*!< Wake-Up pin 2 : PA2  */
00271 #if defined (PWR_WKUPEPR_WKUPEN3)
00272 #define LL_PWR_WAKEUP_PIN3    PWR_WKUPEPR_WKUPEN3  /*!< Wake-Up pin 3 : PI8  */
00273 #endif /* defined (PWR_WKUPEPR_WKUPEN3) */
00274 #define LL_PWR_WAKEUP_PIN4    PWR_WKUPEPR_WKUPEN4  /*!< Wake-Up pin 4 : PC13 */
00275 #if defined (PWR_WKUPEPR_WKUPEN5)
00276 #define LL_PWR_WAKEUP_PIN5    PWR_WKUPEPR_WKUPEN5  /*!< Wake-Up pin 5 : PI11 */
00277 #endif /* defined (PWR_WKUPEPR_WKUPEN5) */
00278 #define LL_PWR_WAKEUP_PIN6    PWR_WKUPEPR_WKUPEN6  /*!< Wake-Up pin 6 : PC1  */
00279 /**
00280   * @}
00281   */
00282 
00283 /** @defgroup PWR_LL_EC_WAKEUP_PIN_PULL  Wakeup Pins pull configuration
00284   * @{
00285   */
00286 #define LL_PWR_WAKEUP_PIN_NOPULL      0x00000000UL   /*!< Configure Wake-Up pin in no pull   */
00287 #define LL_PWR_WAKEUP_PIN_PULLUP      0x00000001UL   /*!< Configure Wake-Up pin in pull Up   */
00288 #define LL_PWR_WAKEUP_PIN_PULLDOWN    0x00000002UL   /*!< Configure Wake-Up pin in pull Down */
00289 /**
00290   * @}
00291   */
00292 
00293 /** @defgroup PWR_LL_EC_SUPPLY_PWR Power supply source configuration
00294   * @{
00295   */
00296 #define LL_PWR_LDO_SUPPLY                     PWR_CR3_LDOEN                                                               /*!< Core domains are supplied from the LDO                                                                     */
00297 #if defined (SMPS)
00298 #define LL_PWR_DIRECT_SMPS_SUPPLY             PWR_CR3_SMPSEN                                                              /*!< Core domains are supplied from the SMPS                                                                    */
00299 #define LL_PWR_SMPS_1V8_SUPPLIES_LDO          (PWR_CR3_SMPSLEVEL_0 | PWR_CR3_SMPSEN | PWR_CR3_LDOEN)                      /*!< The SMPS 1.8V output supplies the LDO which supplies the Core domains                                       */
00300 #define LL_PWR_SMPS_2V5_SUPPLIES_LDO          (PWR_CR3_SMPSLEVEL_1 | PWR_CR3_SMPSEN | PWR_CR3_LDOEN)                      /*!< The SMPS 2.5V output supplies the LDO which supplies the Core domains                                       */
00301 #define LL_PWR_SMPS_1V8_SUPPLIES_EXT_AND_LDO  (PWR_CR3_SMPSLEVEL_0 | PWR_CR3_SMPSEXTHP | PWR_CR3_SMPSEN | PWR_CR3_LDOEN)  /*!< The SMPS 1.8V output supplies an external circuits and the LDO. The Core domains are supplied from the LDO */
00302 #define LL_PWR_SMPS_2V5_SUPPLIES_EXT_AND_LDO  (PWR_CR3_SMPSLEVEL_1 | PWR_CR3_SMPSEXTHP | PWR_CR3_SMPSEN | PWR_CR3_LDOEN)  /*!< The SMPS 2.5V output supplies an external circuits and the LDO. The Core domains are supplied from the LDO */
00303 #define LL_PWR_SMPS_1V8_SUPPLIES_EXT          (PWR_CR3_SMPSLEVEL_0 | PWR_CR3_SMPSEXTHP | PWR_CR3_SMPSEN | PWR_CR3_BYPASS) /*!< The SMPS 1.8V output supplies an external source which supplies the Core domains                            */
00304 #define LL_PWR_SMPS_2V5_SUPPLIES_EXT          (PWR_CR3_SMPSLEVEL_1 | PWR_CR3_SMPSEXTHP | PWR_CR3_SMPSEN | PWR_CR3_BYPASS) /*!< The SMPS 2.5V output supplies an external source which supplies the Core domains                            */
00305 #endif /* SMPS */
00306 #define LL_PWR_EXTERNAL_SOURCE_SUPPLY         PWR_CR3_BYPASS                                                              /*!< The SMPS and the LDO are Bypassed. The Core domains are supplied from an external source                    */
00307 /**
00308   * @}
00309   */
00310 
00311 /**
00312   * @}
00313   */
00314 /* Exported macro ------------------------------------------------------------*/
00315 /** @defgroup PWR_LL_Exported_Macros PWR Exported Macros
00316   * @{
00317   */
00318 
00319 /** @defgroup PWR_LL_EM_WRITE_READ Common write and read registers Macros
00320   * @{
00321   */
00322 
00323 /**
00324   * @brief  Write a value in PWR register
00325   * @param  __REG__ Register to be written
00326   * @param  __VALUE__ Value to be written in the register
00327   * @retval None
00328   */
00329 #define LL_PWR_WriteReg(__REG__, __VALUE__) WRITE_REG(PWR->__REG__, (__VALUE__))
00330 
00331 /**
00332   * @brief  Read a value in PWR register
00333   * @param  __REG__ Register to be read
00334   * @retval Register value
00335   */
00336 #define LL_PWR_ReadReg(__REG__) READ_REG(PWR->__REG__)
00337 /**
00338   * @}
00339   */
00340 
00341 /**
00342   * @}
00343   */
00344 /* Exported functions --------------------------------------------------------*/
00345 /** @defgroup PWR_LL_Exported_Functions PWR Exported Functions
00346   * @{
00347   */
00348 
00349 /** @defgroup PWR_LL_EF_Configuration Configuration
00350   * @{
00351   */
00352 
00353   /**
00354   * @brief  Set the voltage Regulator mode during deep sleep mode
00355   * @rmtoll CR1    LPDS         LL_PWR_SetRegulModeDS
00356   * @param  RegulMode This parameter can be one of the following values:
00357   *         @arg @ref LL_PWR_REGU_DSMODE_MAIN
00358   *         @arg @ref LL_PWR_REGU_DSMODE_LOW_POWER
00359   * @retval None
00360   */
00361 __STATIC_INLINE void LL_PWR_SetRegulModeDS(uint32_t RegulMode)
00362 {
00363   MODIFY_REG(PWR->CR1, PWR_CR1_LPDS, RegulMode);
00364 }
00365 
00366 /**
00367   * @brief  Get the voltage Regulator mode during deep sleep mode
00368   * @rmtoll CR1    LPDS         LL_PWR_GetRegulModeDS
00369   * @retval Returned value can be one of the following values:
00370   *         @arg @ref LL_PWR_REGU_DSMODE_MAIN
00371   *         @arg @ref LL_PWR_REGU_DSMODE_LOW_POWER
00372   */
00373 __STATIC_INLINE uint32_t LL_PWR_GetRegulModeDS(void)
00374 {
00375   return (uint32_t)(READ_BIT(PWR->CR1, PWR_CR1_LPDS));
00376 }
00377 
00378 /**
00379   * @brief  Enable Power Voltage Detector
00380   * @rmtoll CR1    PVDEN       LL_PWR_EnablePVD
00381   * @retval None
00382   */
00383 __STATIC_INLINE void LL_PWR_EnablePVD(void)
00384 {
00385   SET_BIT(PWR->CR1, PWR_CR1_PVDEN);
00386 }
00387 
00388 /**
00389   * @brief  Disable Power Voltage Detector
00390   * @rmtoll CR1    PVDEN       LL_PWR_DisablePVD
00391   * @retval None
00392   */
00393 __STATIC_INLINE void LL_PWR_DisablePVD(void)
00394 {
00395   CLEAR_BIT(PWR->CR1, PWR_CR1_PVDEN);
00396 }
00397 
00398 /**
00399   * @brief  Check if Power Voltage Detector is enabled
00400   * @rmtoll CR1    PVDEN       LL_PWR_IsEnabledPVD
00401   * @retval State of bit (1 or 0).
00402   */
00403 __STATIC_INLINE uint32_t LL_PWR_IsEnabledPVD(void)
00404 {
00405   return ((READ_BIT(PWR->CR1, PWR_CR1_PVDEN) == (PWR_CR1_PVDEN)) ? 1UL : 0UL);
00406 }
00407 
00408 /**
00409   * @brief  Configure the voltage threshold detected by the Power Voltage Detector
00410   * @rmtoll CR1    PLS       LL_PWR_SetPVDLevel
00411   * @param  PVDLevel This parameter can be one of the following values:
00412   *         @arg @ref LL_PWR_PVDLEVEL_0
00413   *         @arg @ref LL_PWR_PVDLEVEL_1
00414   *         @arg @ref LL_PWR_PVDLEVEL_2
00415   *         @arg @ref LL_PWR_PVDLEVEL_3
00416   *         @arg @ref LL_PWR_PVDLEVEL_4
00417   *         @arg @ref LL_PWR_PVDLEVEL_5
00418   *         @arg @ref LL_PWR_PVDLEVEL_6
00419   *         @arg @ref LL_PWR_PVDLEVEL_7
00420   * @retval None
00421   */
00422 __STATIC_INLINE void LL_PWR_SetPVDLevel(uint32_t PVDLevel)
00423 {
00424   MODIFY_REG(PWR->CR1, PWR_CR1_PLS, PVDLevel);
00425 }
00426 
00427 /**
00428   * @brief  Get the voltage threshold detection
00429   * @rmtoll CR1    PLS       LL_PWR_GetPVDLevel
00430   * @retval Returned value can be one of the following values:
00431   *         @arg @ref LL_PWR_PVDLEVEL_0
00432   *         @arg @ref LL_PWR_PVDLEVEL_1
00433   *         @arg @ref LL_PWR_PVDLEVEL_2
00434   *         @arg @ref LL_PWR_PVDLEVEL_3
00435   *         @arg @ref LL_PWR_PVDLEVEL_4
00436   *         @arg @ref LL_PWR_PVDLEVEL_5
00437   *         @arg @ref LL_PWR_PVDLEVEL_6
00438   *         @arg @ref LL_PWR_PVDLEVEL_7
00439   */
00440 __STATIC_INLINE uint32_t LL_PWR_GetPVDLevel(void)
00441 {
00442   return (uint32_t)(READ_BIT(PWR->CR1, PWR_CR1_PLS));
00443 }
00444 
00445 /**
00446   * @brief  Enable access to the backup domain
00447   * @rmtoll CR1    DBP       LL_PWR_EnableBkUpAccess
00448   * @retval None
00449   */
00450 __STATIC_INLINE void LL_PWR_EnableBkUpAccess(void)
00451 {
00452   SET_BIT(PWR->CR1, PWR_CR1_DBP);
00453 }
00454 
00455 /**
00456   * @brief  Disable access to the backup domain
00457   * @rmtoll CR1    DBP       LL_PWR_DisableBkUpAccess
00458   * @retval None
00459   */
00460 __STATIC_INLINE void LL_PWR_DisableBkUpAccess(void)
00461 {
00462   CLEAR_BIT(PWR->CR1, PWR_CR1_DBP);
00463 }
00464 
00465 /**
00466   * @brief  Check if the backup domain is enabled
00467   * @rmtoll CR1    DBP       LL_PWR_IsEnabledBkUpAccess
00468   * @retval State of bit (1 or 0).
00469   */
00470 __STATIC_INLINE uint32_t LL_PWR_IsEnabledBkUpAccess(void)
00471 {
00472   return ((READ_BIT(PWR->CR1, PWR_CR1_DBP) == (PWR_CR1_DBP)) ? 1UL : 0UL);
00473 }
00474 
00475 /**
00476   * @brief  Enable the Flash Power Down in Stop Mode
00477   * @rmtoll CR1    FLPS       LL_PWR_EnableFlashPowerDown
00478   * @retval None
00479   */
00480 __STATIC_INLINE void LL_PWR_EnableFlashPowerDown(void)
00481 {
00482   SET_BIT(PWR->CR1, PWR_CR1_FLPS);
00483 }
00484 
00485 /**
00486   * @brief  Disable the Flash Power Down in Stop Mode
00487   * @rmtoll CR1    FLPS       LL_PWR_DisableFlashPowerDown
00488   * @retval None
00489   */
00490 __STATIC_INLINE void LL_PWR_DisableFlashPowerDown(void)
00491 {
00492   CLEAR_BIT(PWR->CR1, PWR_CR1_FLPS);
00493 }
00494 
00495 /**
00496   * @brief  Check if the Flash Power Down in Stop Mode is enabled
00497   * @rmtoll CR1    FLPS       LL_PWR_IsEnabledFlashPowerDown
00498   * @retval State of bit (1 or 0).
00499   */
00500 __STATIC_INLINE uint32_t LL_PWR_IsEnabledFlashPowerDown(void)
00501 {
00502   return ((READ_BIT(PWR->CR1, PWR_CR1_FLPS) == (PWR_CR1_FLPS)) ? 1UL : 0UL);
00503 }
00504 
00505 #if defined (PWR_CR1_BOOSTE)
00506 /**
00507   * @brief  Enable the Analog Voltage Booster (VDDA)
00508   * @rmtoll CR1    BOOSTE     LL_PWR_EnableAnalogBooster
00509   * @retval None
00510   */
00511 __STATIC_INLINE void LL_PWR_EnableAnalogBooster(void)
00512 {
00513   SET_BIT(PWR->CR1, PWR_CR1_BOOSTE);
00514 }
00515 
00516 /**
00517   * @brief  Disable the Analog Voltage Booster (VDDA)
00518   * @rmtoll CR1    BOOSTE     LL_PWR_DisableAnalogBooster
00519   * @retval None
00520   */
00521 __STATIC_INLINE void LL_PWR_DisableAnalogBooster(void)
00522 {
00523   CLEAR_BIT(PWR->CR1, PWR_CR1_BOOSTE);
00524 }
00525 
00526 /**
00527   * @brief  Check if the Analog Voltage Booster (VDDA) is enabled
00528   * @rmtoll CR1    BOOSTE     LL_PWR_IsEnabledAnalogBooster
00529   * @retval State of bit (1 or 0).
00530   */
00531 __STATIC_INLINE uint32_t LL_PWR_IsEnabledAnalogBooster(void)
00532 {
00533   return ((READ_BIT(PWR->CR1, PWR_CR1_BOOSTE) == (PWR_CR1_BOOSTE)) ? 1UL : 0UL);
00534 }
00535 #endif /* PWR_CR1_BOOSTE */
00536 
00537 #if defined (PWR_CR1_AVD_READY)
00538 /**
00539   * @brief  Enable the Analog Voltage Ready to isolate the BOOST IP until VDDA will be ready
00540   * @rmtoll CR1    AVD_READY  LL_PWR_EnableAnalogVoltageReady
00541   * @retval None
00542   */
00543 __STATIC_INLINE void LL_PWR_EnableAnalogVoltageReady(void)
00544 {
00545   SET_BIT(PWR->CR1, PWR_CR1_AVD_READY);
00546 }
00547 
00548 /**
00549   * @brief  Disable the Analog Voltage Ready (VDDA)
00550   * @rmtoll CR1    AVD_READY  LL_PWR_DisableAnalogVoltageReady
00551   * @retval None
00552   */
00553 __STATIC_INLINE void LL_PWR_DisableAnalogVoltageReady(void)
00554 {
00555   CLEAR_BIT(PWR->CR1, PWR_CR1_AVD_READY);
00556 }
00557 
00558 /**
00559   * @brief  Check if the Analog Voltage Booster (VDDA) is enabled
00560   * @rmtoll CR1    AVD_READY  LL_PWR_IsEnabledAnalogVoltageReady
00561   * @retval State of bit (1 or 0).
00562   */
00563 __STATIC_INLINE uint32_t LL_PWR_IsEnabledAnalogVoltageReady(void)
00564 {
00565   return ((READ_BIT(PWR->CR1, PWR_CR1_AVD_READY) == (PWR_CR1_AVD_READY)) ? 1UL : 0UL);
00566 }
00567 #endif /* PWR_CR1_AVD_READY */
00568 
00569 /**
00570   * @brief  Set the internal Regulator output voltage in STOP mode
00571   * @rmtoll CR1    SVOS       LL_PWR_SetStopModeRegulVoltageScaling
00572   * @param  VoltageScaling This parameter can be one of the following values:
00573   *         @arg @ref LL_PWR_REGU_VOLTAGE_SVOS_SCALE3
00574   *         @arg @ref LL_PWR_REGU_VOLTAGE_SVOS_SCALE4
00575   *         @arg @ref LL_PWR_REGU_VOLTAGE_SVOS_SCALE5
00576   * @retval None
00577   */
00578 __STATIC_INLINE void LL_PWR_SetStopModeRegulVoltageScaling(uint32_t VoltageScaling)
00579 {
00580   MODIFY_REG(PWR->CR1, PWR_CR1_SVOS, VoltageScaling);
00581 }
00582 
00583 /**
00584   * @brief  Get the internal Regulator output voltage in STOP mode
00585   * @rmtoll CR1    SVOS       LL_PWR_GetStopModeRegulVoltageScaling
00586   * @retval Returned value can be one of the following values:
00587   *         @arg @ref LL_PWR_REGU_VOLTAGE_SVOS_SCALE3
00588   *         @arg @ref LL_PWR_REGU_VOLTAGE_SVOS_SCALE4
00589   *         @arg @ref LL_PWR_REGU_VOLTAGE_SVOS_SCALE5
00590   */
00591 __STATIC_INLINE uint32_t LL_PWR_GetStopModeRegulVoltageScaling(void)
00592 {
00593   return (uint32_t)(READ_BIT(PWR->CR1, PWR_CR1_SVOS));
00594 }
00595 
00596 /**
00597   * @brief  Enable Analog Power Voltage Detector
00598   * @rmtoll CR1    AVDEN       LL_PWR_EnableAVD
00599   * @retval None
00600   */
00601 __STATIC_INLINE void LL_PWR_EnableAVD(void)
00602 {
00603   SET_BIT(PWR->CR1, PWR_CR1_AVDEN);
00604 }
00605 
00606 /**
00607   * @brief  Disable Analog Power Voltage Detector
00608   * @rmtoll CR1    AVDEN       LL_PWR_DisableAVD
00609   * @retval None
00610   */
00611 __STATIC_INLINE void LL_PWR_DisableAVD(void)
00612 {
00613   CLEAR_BIT(PWR->CR1, PWR_CR1_AVDEN);
00614 }
00615 
00616 /**
00617   * @brief  Check if Analog Power Voltage Detector is enabled
00618   * @rmtoll CR1    AVDEN       LL_PWR_IsEnabledAVD
00619   * @retval State of bit (1 or 0).
00620   */
00621 __STATIC_INLINE uint32_t LL_PWR_IsEnabledAVD(void)
00622 {
00623   return ((READ_BIT(PWR->CR1, PWR_CR1_AVDEN) == (PWR_CR1_AVDEN)) ? 1UL : 0UL);
00624 }
00625 
00626 /**
00627   * @brief  Configure the voltage threshold to be detected by the Analog Power Voltage Detector
00628   * @rmtoll CR1    ALS       LL_PWR_SetAVDLevel
00629   * @param  AVDLevel This parameter can be one of the following values:
00630   *         @arg @ref LL_PWR_AVDLEVEL_0
00631   *         @arg @ref LL_PWR_AVDLEVEL_1
00632   *         @arg @ref LL_PWR_AVDLEVEL_2
00633   *         @arg @ref LL_PWR_AVDLEVEL_3
00634   * @retval None
00635   */
00636 __STATIC_INLINE void LL_PWR_SetAVDLevel(uint32_t AVDLevel)
00637 {
00638   MODIFY_REG(PWR->CR1, PWR_CR1_ALS, AVDLevel);
00639 }
00640 
00641 /**
00642   * @brief  Get the Analog Voltage threshold to be detected by the Analog Power Voltage Detector
00643   * @rmtoll CR1    ALS       LL_PWR_GetAVDLevel
00644   * @retval Returned value can be one of the following values:
00645   *         @arg @ref LL_PWR_AVDLEVEL_0
00646   *         @arg @ref LL_PWR_AVDLEVEL_1
00647   *         @arg @ref LL_PWR_AVDLEVEL_2
00648   *         @arg @ref LL_PWR_AVDLEVEL_3
00649   */
00650 __STATIC_INLINE uint32_t LL_PWR_GetAVDLevel(void)
00651 {
00652   return (uint32_t)(READ_BIT(PWR->CR1, PWR_CR1_ALS));
00653 }
00654 
00655 #if defined (PWR_CR1_AXIRAM1SO)
00656 /**
00657   * @brief  Enable the AXI RAM1 shut-off in DStop/DStop2 mode
00658   * @rmtoll CR1    AXIRAM1SO     LL_PWR_EnableAXIRAM1ShutOff
00659   * @retval None
00660   */
00661 __STATIC_INLINE void LL_PWR_EnableAXIRAM1ShutOff(void)
00662 {
00663   SET_BIT(PWR->CR1, PWR_CR1_AXIRAM1SO);
00664 }
00665 
00666 /**
00667   * @brief  Disable the AXI RAM1 shut-off in DStop/DStop2 mode
00668   * @rmtoll CR1    AXIRAM1SO     LL_PWR_DisableAXIRAM1ShutOff
00669   * @retval None
00670   */
00671 __STATIC_INLINE void LL_PWR_DisableAXIRAM1ShutOff(void)
00672 {
00673   CLEAR_BIT(PWR->CR1, PWR_CR1_AXIRAM1SO);
00674 }
00675 
00676 /**
00677   * @brief  Check if the AXI RAM1 shut-off in DStop/DStop2 mode is enabled
00678   * @rmtoll CR1    AXIRAM1SO     LL_PWR_IsEnabledAXIRAM1ShutOff
00679   * @retval State of bit (1 or 0).
00680   */
00681 __STATIC_INLINE uint32_t LL_PWR_IsEnabledAXIRAM1ShutOff(void)
00682 {
00683   return ((READ_BIT(PWR->CR1, PWR_CR1_AXIRAM1SO) == (PWR_CR1_AXIRAM1SO)) ? 1UL : 0UL);
00684 }
00685 #endif /* PWR_CR1_AXIRAM1SO */
00686 
00687 #if defined (PWR_CR1_AXIRAM2SO)
00688 /**
00689   * @brief  Enable the AXI RAM2 shut-off in DStop/DStop2 mode
00690   * @rmtoll CR1    AXIRAM2SO     LL_PWR_EnableAXIRAM2ShutOff
00691   * @retval None
00692   */
00693 __STATIC_INLINE void LL_PWR_EnableAXIRAM2ShutOff(void)
00694 {
00695   SET_BIT(PWR->CR1, PWR_CR1_AXIRAM2SO);
00696 }
00697 
00698 /**
00699   * @brief  Disable the AXI RAM2 shut-off in DStop/DStop2 mode
00700   * @rmtoll CR1    AXIRAM2SO     LL_PWR_DisableAXIRAM2ShutOff
00701   * @retval None
00702   */
00703 __STATIC_INLINE void LL_PWR_DisableAXIRAM2ShutOff(void)
00704 {
00705   CLEAR_BIT(PWR->CR1, PWR_CR1_AXIRAM2SO);
00706 }
00707 
00708 /**
00709   * @brief  Check if the AXI RAM2 shut-off in DStop/DStop2 mode is enabled
00710   * @rmtoll CR1    AXIRAM2SO     LL_PWR_IsEnabledAXIRAM2ShutOff
00711   * @retval State of bit (1 or 0).
00712   */
00713 __STATIC_INLINE uint32_t LL_PWR_IsEnabledAXIRAM2ShutOff(void)
00714 {
00715   return ((READ_BIT(PWR->CR1, PWR_CR1_AXIRAM2SO) == (PWR_CR1_AXIRAM2SO)) ? 1UL : 0UL);
00716 }
00717 #endif /* PWR_CR1_AXIRAM2SO */
00718 
00719 #if defined (PWR_CR1_AXIRAM3SO)
00720 /**
00721   * @brief  Enable the AXI RAM3 shut-off in DStop/DStop2 mode
00722   * @rmtoll CR1    AXIRAM3SO     LL_PWR_EnableAXIRAM3ShutOff
00723   * @retval None
00724   */
00725 __STATIC_INLINE void LL_PWR_EnableAXIRAM3ShutOff(void)
00726 {
00727   SET_BIT(PWR->CR1, PWR_CR1_AXIRAM3SO);
00728 }
00729 
00730 /**
00731   * @brief  Disable the AXI RAM3 shut-off in DStop/DStop2 mode
00732   * @rmtoll CR1    AXIRAM3SO     LL_PWR_DisableAXIRAM3ShutOff
00733   * @retval None
00734   */
00735 __STATIC_INLINE void LL_PWR_DisableAXIRAM3ShutOff(void)
00736 {
00737   CLEAR_BIT(PWR->CR1, PWR_CR1_AXIRAM3SO);
00738 }
00739 
00740 /**
00741   * @brief  Check if the AXI RAM3 shut-off in DStop/DStop2 mode is enabled
00742   * @rmtoll CR1    AXIRAM3SO     LL_PWR_IsEnabledAXIRAM3ShutOff
00743   * @retval State of bit (1 or 0).
00744   */
00745 __STATIC_INLINE uint32_t LL_PWR_IsEnabledAXIRAM3ShutOff(void)
00746 {
00747   return ((READ_BIT(PWR->CR1, PWR_CR1_AXIRAM3SO) == (PWR_CR1_AXIRAM3SO)) ? 1UL : 0UL);
00748 }
00749 #endif /* PWR_CR1_AXIRAM3SO */
00750 
00751 #if defined (PWR_CR1_AHBRAM1SO)
00752 /**
00753   * @brief  Enable the AHB RAM1 shut-off in DStop/DStop2 mode
00754   * @rmtoll CR1    AHBRAM1SO     LL_PWR_EnableAHBRAM1ShutOff
00755   * @retval None
00756   */
00757 __STATIC_INLINE void LL_PWR_EnableAHBRAM1ShutOff(void)
00758 {
00759   SET_BIT(PWR->CR1, PWR_CR1_AHBRAM1SO);
00760 }
00761 
00762 /**
00763   * @brief  Disable the AHB RAM1 shut-off in DStop/DStop2 mode
00764   * @rmtoll CR1    AHBRAM1SO     LL_PWR_DisableAHBRAM1ShutOff
00765   * @retval None
00766   */
00767 __STATIC_INLINE void LL_PWR_DisableAHBRAM1ShutOff(void)
00768 {
00769   CLEAR_BIT(PWR->CR1, PWR_CR1_AHBRAM1SO);
00770 }
00771 
00772 /**
00773   * @brief  Check if the AHB RAM1 shut-off in DStop/DStop2 mode is enabled
00774   * @rmtoll CR1    AHBRAM1SO     LL_PWR_IsEnabledAHBRAM1ShutOff
00775   * @retval State of bit (1 or 0).
00776   */
00777 __STATIC_INLINE uint32_t LL_PWR_IsEnabledAHBRAM1ShutOff(void)
00778 {
00779   return ((READ_BIT(PWR->CR1, PWR_CR1_AHBRAM1SO) == (PWR_CR1_AHBRAM1SO)) ? 1UL : 0UL);
00780 }
00781 #endif /* PWR_CR1_AHBRAM1SO */
00782 
00783 #if defined (PWR_CR1_AHBRAM2SO)
00784 /**
00785   * @brief  Enable the AHB RAM2 shut-off in DStop/DStop2 mode
00786   * @rmtoll CR1    AHBRAM2SO     LL_PWR_EnableAHBRAM2ShutOff
00787   * @retval None
00788   */
00789 __STATIC_INLINE void LL_PWR_EnableAHBRAM2ShutOff(void)
00790 {
00791   SET_BIT(PWR->CR1, PWR_CR1_AHBRAM2SO);
00792 }
00793 
00794 /**
00795   * @brief  Disable the AHB RAM2 shut-off in DStop/DStop2 mode
00796   * @rmtoll CR1    AHBRAM2SO     LL_PWR_DisableAHBRAM2ShutOff
00797   * @retval None
00798   */
00799 __STATIC_INLINE void LL_PWR_DisableAHBRAM2ShutOff(void)
00800 {
00801   CLEAR_BIT(PWR->CR1, PWR_CR1_AHBRAM2SO);
00802 }
00803 
00804 /**
00805   * @brief  Check if the AHB RAM2 shut-off in DStop/DStop2 mode is enabled
00806   * @rmtoll CR1    AHBRAM2SO     LL_PWR_IsEnabledAHBRAM2ShutOff
00807   * @retval State of bit (1 or 0).
00808   */
00809 __STATIC_INLINE uint32_t LL_PWR_IsEnabledAHBRAM2ShutOff(void)
00810 {
00811   return ((READ_BIT(PWR->CR1, PWR_CR1_AHBRAM2SO) == (PWR_CR1_AHBRAM2SO)) ? 1UL : 0UL);
00812 }
00813 #endif /* PWR_CR1_AHBRAM2SO */
00814 
00815 #if defined (PWR_CR1_ITCMSO)
00816 /**
00817   * @brief  Enable the ITCM shut-off in DStop/DStop2 mode
00818   * @rmtoll CR1    ITCMSO     LL_PWR_EnableITCMSOShutOff
00819   * @retval None
00820   */
00821 __STATIC_INLINE void LL_PWR_EnableITCMSOShutOff(void)
00822 {
00823   SET_BIT(PWR->CR1, PWR_CR1_ITCMSO);
00824 }
00825 
00826 /**
00827   * @brief  Disable the ITCM shut-off in DStop/DStop2 mode
00828   * @rmtoll CR1    ITCMSO     LL_PWR_DisableITCMSOShutOff
00829   * @retval None
00830   */
00831 __STATIC_INLINE void LL_PWR_DisableITCMSOShutOff(void)
00832 {
00833   CLEAR_BIT(PWR->CR1, PWR_CR1_ITCMSO);
00834 }
00835 
00836 /**
00837   * @brief  Check if the ITCM shut-off in DStop/DStop2 mode is enabled
00838   * @rmtoll CR1    ITCMSO     LL_PWR_IsEnabledITCMShutOff
00839   * @retval State of bit (1 or 0).
00840   */
00841 __STATIC_INLINE uint32_t LL_PWR_IsEnabledITCMShutOff(void)
00842 {
00843   return ((READ_BIT(PWR->CR1, PWR_CR1_ITCMSO) == (PWR_CR1_ITCMSO)) ? 1UL : 0UL);
00844 }
00845 #endif /* PWR_CR1_ITCMSO */
00846 
00847 #if defined (PWR_CR1_HSITFSO)
00848 /**
00849   * @brief  Enable the USB and FDCAN shut-off in DStop/DStop2 mode
00850   * @rmtoll CR1    HSITFSO     LL_PWR_EnableHSITFShutOff
00851   * @retval None
00852   */
00853 __STATIC_INLINE void LL_PWR_EnableHSITFShutOff(void)
00854 {
00855   SET_BIT(PWR->CR1, PWR_CR1_HSITFSO);
00856 }
00857 
00858 /**
00859   * @brief  Disable the USB and FDCAN shut-off in DStop/DStop2 mode
00860   * @rmtoll CR1    HSITFSO     LL_PWR_DisableHSITFShutOff
00861   * @retval None
00862   */
00863 __STATIC_INLINE void LL_PWR_DisableHSITFShutOff(void)
00864 {
00865   CLEAR_BIT(PWR->CR1, PWR_CR1_HSITFSO);
00866 }
00867 
00868 /**
00869   * @brief  Check if the USB and FDCAN shut-off in DStop/DStop2 mode is enabled
00870   * @rmtoll CR1    HSITFSO     LL_PWR_IsEnabledHSITFShutOff
00871   * @retval State of bit (1 or 0).
00872   */
00873 __STATIC_INLINE uint32_t LL_PWR_IsEnabledHSITFShutOff(void)
00874 {
00875   return ((READ_BIT(PWR->CR1, PWR_CR1_HSITFSO) == (PWR_CR1_HSITFSO)) ? 1UL : 0UL);
00876 }
00877 #endif /* PWR_CR1_HSITFSO */
00878 
00879 #if defined (PWR_CR1_SRDRAMSO)
00880 /**
00881   * @brief  Enable the SRD AHB RAM shut-off in DStop/DStop2 mode
00882   * @rmtoll CR1    SRDRAMSO     LL_PWR_EnableSRDRAMShutOff
00883   * @retval None
00884   */
00885 __STATIC_INLINE void LL_PWR_EnableSRDRAMShutOff(void)
00886 {
00887   SET_BIT(PWR->CR1, PWR_CR1_SRDRAMSO);
00888 }
00889 
00890 /**
00891   * @brief  Disable the SRD AHB RAM shut-off in DStop/DStop2 mode
00892   * @rmtoll CR1    SRDRAMSO     LL_PWR_DisableSRDRAMShutOff
00893   * @retval None
00894   */
00895 __STATIC_INLINE void LL_PWR_DisableSRDRAMShutOff(void)
00896 {
00897   CLEAR_BIT(PWR->CR1, PWR_CR1_SRDRAMSO);
00898 }
00899 
00900 /**
00901   * @brief  Check if the SRD AHB RAM shut-off in DStop/DStop2 mode is enabled
00902   * @rmtoll CR1    SRDRAMSO     LL_PWR_IsEnabledSRDRAMShutOff
00903   * @retval State of bit (1 or 0).
00904   */
00905 __STATIC_INLINE uint32_t LL_PWR_IsEnabledSRDRAMShutOff(void)
00906 {
00907   return ((READ_BIT(PWR->CR1, PWR_CR1_SRDRAMSO) == (PWR_CR1_SRDRAMSO)) ? 1UL : 0UL);
00908 }
00909 #endif /* PWR_CR1_SRDRAMSO */
00910 
00911 /**
00912   * @brief  Enable Backup Regulator
00913   * @rmtoll CR2    BREN       LL_PWR_EnableBkUpRegulator
00914   * @note When set, the Backup Regulator (used to maintain backup SRAM content in Standby and
00915   *       VBAT modes) is enabled. If BRE is reset, the backup Regulator is switched off. The backup
00916   *       SRAM can still be used but its content will be lost in the Standby and VBAT modes. Once set,
00917   *       the application must wait that the Backup Regulator Ready flag (BRR) is set to indicate that
00918   *       the data written into the RAM will be maintained in the Standby and VBAT modes.
00919   * @retval None
00920   */
00921 __STATIC_INLINE void LL_PWR_EnableBkUpRegulator(void)
00922 {
00923   SET_BIT(PWR->CR2, PWR_CR2_BREN);
00924 }
00925 
00926 /**
00927   * @brief  Disable Backup Regulator
00928   * @rmtoll CR2    BREN       LL_PWR_DisableBkUpRegulator
00929   * @retval None
00930   */
00931 __STATIC_INLINE void LL_PWR_DisableBkUpRegulator(void)
00932 {
00933   CLEAR_BIT(PWR->CR2, PWR_CR2_BREN);
00934 }
00935 
00936 /**
00937   * @brief  Check if the backup Regulator is enabled
00938   * @rmtoll CR2    BREN      LL_PWR_IsEnabledBkUpRegulator
00939   * @retval State of bit (1 or 0).
00940   */
00941 __STATIC_INLINE uint32_t LL_PWR_IsEnabledBkUpRegulator(void)
00942 {
00943   return ((READ_BIT(PWR->CR2, PWR_CR2_BREN) == (PWR_CR2_BREN)) ? 1UL : 0UL);
00944 }
00945 
00946 /**
00947   * @brief  Enable VBAT and Temperature monitoring
00948   * @rmtoll CR2    MONEN       LL_PWR_EnableMonitoring
00949   * @retval None
00950   */
00951 __STATIC_INLINE void LL_PWR_EnableMonitoring(void)
00952 {
00953   SET_BIT(PWR->CR2, PWR_CR2_MONEN);
00954 }
00955 
00956 /**
00957   * @brief  Disable VBAT and Temperature monitoring
00958   * @rmtoll CR2    MONEN       LL_PWR_DisableMonitoring
00959   * @retval None
00960   */
00961 __STATIC_INLINE void LL_PWR_DisableMonitoring(void)
00962 {
00963   CLEAR_BIT(PWR->CR2, PWR_CR2_MONEN);
00964 }
00965 
00966 /**
00967   * @brief  Check if the VBAT and Temperature monitoring is enabled
00968   * @rmtoll CR2    MONEN      LL_PWR_IsEnabledMonitoring
00969   * @retval State of bit (1 or 0).
00970   */
00971 __STATIC_INLINE uint32_t LL_PWR_IsEnabledMonitoring(void)
00972 {
00973   return ((READ_BIT(PWR->CR2, PWR_CR2_MONEN) == (PWR_CR2_MONEN)) ? 1UL : 0UL);
00974 }
00975 
00976 #if defined (SMPS)
00977 /**
00978   * @brief  Configure the PWR supply
00979   * @rmtoll CR3          BYPASS          LL_PWR_ConfigSupply
00980   * @rmtoll CR3          LDOEN           LL_PWR_ConfigSupply
00981   * @rmtoll CR3          SMPSEN          LL_PWR_ConfigSupply
00982   * @rmtoll CR3          SMPSEXTHP       LL_PWR_ConfigSupply
00983   * @rmtoll CR3          SMPSLEVEL       LL_PWR_ConfigSupply
00984   * @param  SupplySource This parameter can be one of the following values:
00985   *         @arg @ref LL_PWR_LDO_SUPPLY
00986   *         @arg @ref LL_PWR_DIRECT_SMPS_SUPPLY
00987   *         @arg @ref LL_PWR_SMPS_1V8_SUPPLIES_LDO
00988   *         @arg @ref LL_PWR_SMPS_2V5_SUPPLIES_LDO
00989   *         @arg @ref LL_PWR_SMPS_1V8_SUPPLIES_EXT_AND_LDO
00990   *         @arg @ref LL_PWR_SMPS_2V5_SUPPLIES_EXT_AND_LDO
00991   *         @arg @ref LL_PWR_SMPS_1V8_SUPPLIES_EXT
00992   *         @arg @ref LL_PWR_SMPS_2V5_SUPPLIES_EXT
00993   *         @arg @ref LL_PWR_EXTERNAL_SOURCE_SUPPLY
00994   * @retval None
00995   */
00996 __STATIC_INLINE void LL_PWR_ConfigSupply(uint32_t SupplySource)
00997 {
00998   /* Set the power supply configuration */
00999   MODIFY_REG(PWR->CR3, (PWR_CR3_SMPSLEVEL | PWR_CR3_SMPSEXTHP | PWR_CR3_SMPSEN | PWR_CR3_LDOEN | PWR_CR3_BYPASS), SupplySource);
01000 }
01001 #else
01002 /**
01003   * @brief  Configure the PWR supply
01004   * @rmtoll CR3          BYPASS          LL_PWR_ConfigSupply
01005   * @rmtoll CR3          LDOEN           LL_PWR_ConfigSupply
01006   * @rmtoll CR3          SCUEN           LL_PWR_ConfigSupply
01007   * @param  SupplySource This parameter can be one of the following values:
01008   *         @arg @ref LL_PWR_LDO_SUPPLY
01009   *         @arg @ref LL_PWR_EXTERNAL_SOURCE_SUPPLY
01010   * @retval None
01011   */
01012 __STATIC_INLINE void LL_PWR_ConfigSupply(uint32_t SupplySource)
01013 {
01014   /* Set the power supply configuration */
01015   MODIFY_REG(PWR->CR3, (PWR_CR3_SCUEN | PWR_CR3_LDOEN | PWR_CR3_BYPASS), SupplySource);
01016 }
01017 #endif /* defined (SMPS) */
01018 
01019 #if defined (SMPS)
01020 /**
01021   * @brief  Get the PWR supply
01022   * @rmtoll CR3          BYPASS          LL_PWR_GetSupply
01023   * @rmtoll CR3          LDOEN           LL_PWR_GetSupply
01024   * @rmtoll CR3          SMPSEN          LL_PWR_GetSupply
01025   * @rmtoll CR3          SMPSEXTHP       LL_PWR_GetSupply
01026   * @rmtoll CR3          SMPSLEVEL       LL_PWR_GetSupply
01027   * @retval Returned value can be one of the following values:
01028   *         @arg @ref LL_PWR_LDO_SUPPLY
01029   *         @arg @ref LL_PWR_DIRECT_SMPS_SUPPLY
01030   *         @arg @ref LL_PWR_SMPS_1V8_SUPPLIES_LDO
01031   *         @arg @ref LL_PWR_SMPS_2V5_SUPPLIES_LDO
01032   *         @arg @ref LL_PWR_SMPS_1V8_SUPPLIES_EXT_AND_LDO
01033   *         @arg @ref LL_PWR_SMPS_2V5_SUPPLIES_EXT_AND_LDO
01034   *         @arg @ref LL_PWR_SMPS_1V8_SUPPLIES_EXT
01035   *         @arg @ref LL_PWR_SMPS_2V5_SUPPLIES_EXT
01036   *         @arg @ref LL_PWR_EXTERNAL_SOURCE_SUPPLY
01037   */
01038 __STATIC_INLINE uint32_t LL_PWR_GetSupply(void)
01039 {
01040   /* Get the power supply configuration */
01041   return(uint32_t)(READ_BIT(PWR->CR3, (PWR_CR3_SMPSLEVEL | PWR_CR3_SMPSEXTHP | PWR_CR3_SMPSEN | PWR_CR3_LDOEN | PWR_CR3_BYPASS)));
01042 }
01043 #else
01044 /**
01045   * @brief  Get the PWR supply
01046   * @rmtoll CR3          BYPASS          LL_PWR_GetSupply
01047   * @rmtoll CR3          LDOEN           LL_PWR_GetSupply
01048   * @rmtoll CR3          SCUEN           LL_PWR_GetSupply
01049   * @retval Returned value can be one of the following values:
01050   *         @arg @ref LL_PWR_LDO_SUPPLY
01051   *         @arg @ref LL_PWR_EXTERNAL_SOURCE_SUPPLY
01052   */
01053 __STATIC_INLINE uint32_t LL_PWR_GetSupply(void)
01054 {
01055   /* Get the power supply configuration */
01056   return(uint32_t)(READ_BIT(PWR->CR3, (PWR_CR3_SCUEN | PWR_CR3_LDOEN | PWR_CR3_BYPASS)));
01057 }
01058 #endif /* defined (SMPS) */
01059 
01060 /**
01061   * @brief  Enable battery charging
01062   * @rmtoll CR3          VBE           LL_PWR_EnableBatteryCharging
01063   * @retval None
01064   */
01065 __STATIC_INLINE void LL_PWR_EnableBatteryCharging(void)
01066 {
01067   SET_BIT(PWR->CR3, PWR_CR3_VBE);
01068 }
01069 
01070 /**
01071   * @brief  Disable battery charging
01072   * @rmtoll CR3          VBE           LL_PWR_DisableBatteryCharging
01073   * @retval None
01074   */
01075 __STATIC_INLINE void LL_PWR_DisableBatteryCharging(void)
01076 {
01077   CLEAR_BIT(PWR->CR3, PWR_CR3_VBE);
01078 }
01079 
01080 /**
01081   * @brief  Check if battery charging is enabled
01082   * @rmtoll CR3          VBE           LL_PWR_IsEnabledBatteryCharging
01083   * @retval State of bit (1 or 0).
01084   */
01085 __STATIC_INLINE uint32_t LL_PWR_IsEnabledBatteryCharging(void)
01086 {
01087   return ((READ_BIT(PWR->CR3, PWR_CR3_VBE) == (PWR_CR3_VBE)) ? 1UL : 0UL);
01088 }
01089 
01090 /**
01091   * @brief  Set the Battery charge resistor impedance
01092   * @rmtoll CR3          VBRS          LL_PWR_SetBattChargResistor
01093   * @param  Resistor This parameter can be one of the following values:
01094   *         @arg @ref LL_PWR_BATT_CHARG_RESISTOR_5K
01095   *         @arg @ref LL_PWR_BATT_CHARGRESISTOR_1_5K
01096   * @retval None
01097   */
01098 __STATIC_INLINE void LL_PWR_SetBattChargResistor(uint32_t Resistor)
01099 {
01100   MODIFY_REG(PWR->CR3, PWR_CR3_VBRS, Resistor);
01101 }
01102 
01103 /**
01104   * @brief  Get the Battery charge resistor impedance
01105   * @rmtoll CR3          VBRS          LL_PWR_GetBattChargResistor
01106   * @retval Returned value can be one of the following values:
01107   *         @arg @ref LL_PWR_BATT_CHARG_RESISTOR_5K
01108   *         @arg @ref LL_PWR_BATT_CHARGRESISTOR_1_5K
01109   */
01110 __STATIC_INLINE uint32_t LL_PWR_GetBattChargResistor(void)
01111 {
01112   return (uint32_t)(READ_BIT(PWR->CR3, PWR_CR3_VBRS));
01113 }
01114 
01115 /**
01116   * @brief  Enable the USB regulator
01117   * @rmtoll CR3          USBREGEN           LL_PWR_EnableUSBReg
01118   * @retval None
01119   */
01120 __STATIC_INLINE void LL_PWR_EnableUSBReg(void)
01121 {
01122   SET_BIT(PWR->CR3, PWR_CR3_USBREGEN);
01123 }
01124 
01125 /**
01126   * @brief  Disable the USB regulator
01127   * @rmtoll CR3          USBREGEN           LL_PWR_DisableUSBReg
01128   * @retval None
01129   */
01130 __STATIC_INLINE void LL_PWR_DisableUSBReg(void)
01131 {
01132   CLEAR_BIT(PWR->CR3, PWR_CR3_USBREGEN);
01133 }
01134 
01135 /**
01136   * @brief  Check if the USB regulator is enabled
01137   * @rmtoll CR3          USBREGEN           LL_PWR_IsEnabledUSBReg
01138   * @retval State of bit (1 or 0).
01139   */
01140 __STATIC_INLINE uint32_t LL_PWR_IsEnabledUSBReg(void)
01141 {
01142   return ((READ_BIT(PWR->CR3, PWR_CR3_USBREGEN) == (PWR_CR3_USBREGEN)) ? 1UL : 0UL);
01143 }
01144 
01145 /**
01146   * @brief  Enable the USB voltage detector
01147   * @rmtoll CR3          USB33DEN           LL_PWR_EnableUSBVoltageDetector
01148   * @retval None
01149   */
01150 __STATIC_INLINE void LL_PWR_EnableUSBVoltageDetector(void)
01151 {
01152   SET_BIT(PWR->CR3, PWR_CR3_USB33DEN);
01153 }
01154 
01155 /**
01156   * @brief  Disable the USB voltage detector
01157   * @rmtoll CR3          USB33DEN           LL_PWR_DisableUSBVoltageDetector
01158   * @retval None
01159   */
01160 __STATIC_INLINE void LL_PWR_DisableUSBVoltageDetector(void)
01161 {
01162   CLEAR_BIT(PWR->CR3, PWR_CR3_USB33DEN);
01163 }
01164 
01165 /**
01166   * @brief  Check if the USB voltage detector is enabled
01167   * @rmtoll CR3          USB33DEN           LL_PWR_IsEnabledUSBVoltageDetector
01168   * @retval State of bit (1 or 0).
01169   */
01170 __STATIC_INLINE uint32_t LL_PWR_IsEnabledUSBVoltageDetector(void)
01171 {
01172   return ((READ_BIT(PWR->CR3, PWR_CR3_USB33DEN) == (PWR_CR3_USB33DEN)) ? 1UL : 0UL);
01173 }
01174 
01175 #if defined (PWR_CPUCR_PDDS_D2)
01176 /**
01177   * @brief  Set the D1 domain Power Down mode when the CPU enters deepsleep
01178   * @rmtoll CPUCR     PDDS_D1       LL_PWR_CPU_SetD1PowerMode
01179   * @param  PDMode This parameter can be one of the following values:
01180   *         @arg @ref LL_PWR_CPU_MODE_D1STOP
01181   *         @arg @ref LL_PWR_CPU_MODE_D1STANDBY
01182   * @retval None
01183   */
01184 __STATIC_INLINE void LL_PWR_CPU_SetD1PowerMode(uint32_t PDMode)
01185 {
01186   MODIFY_REG(PWR->CPUCR, PWR_CPUCR_PDDS_D1, PDMode);
01187 }
01188 #else
01189 /**
01190   * @brief  Set the CPU domain Power Down mode when the CPU enters deepsleep
01191   * @rmtoll CPUCR     RETDS_CD       LL_PWR_CPU_SetCDPowerMode
01192   * @param  PDMode This parameter can be one of the following values:
01193   *         @arg @ref LL_PWR_CPU_MODE_CDSTOP
01194   *         @arg @ref LL_PWR_CPU_MODE_CDSTOP2
01195   * @retval None
01196   */
01197 __STATIC_INLINE void LL_PWR_CPU_SetCDPowerMode(uint32_t PDMode)
01198 {
01199   MODIFY_REG(PWR->CPUCR, PWR_CPUCR_RETDS_CD, PDMode);
01200 }
01201 #endif /* PWR_CPUCR_PDDS_D2 */
01202 
01203 #if defined (DUAL_CORE)
01204 /**
01205   * @brief  Set the D1 domain Power Down mode when the CPU2 enters deepsleep
01206   * @rmtoll CPU2CR     PDDS_D1       LL_PWR_CPU2_SetD1PowerMode
01207   * @param  PDMode This parameter can be one of the following values:
01208   *         @arg @ref LL_PWR_CPU2_MODE_D1STOP
01209   *         @arg @ref LL_PWR_CPU2_MODE_D1STANDBY
01210   * @retval None
01211   */
01212 __STATIC_INLINE void LL_PWR_CPU2_SetD1PowerMode(uint32_t PDMode)
01213 {
01214   MODIFY_REG(PWR->CPU2CR, PWR_CPU2CR_PDDS_D1, PDMode);
01215 }
01216 #endif /* DUAL_CORE */
01217 
01218 #if defined (PWR_CPUCR_PDDS_D2)
01219 /**
01220   * @brief  Get the D1 Domain Power Down mode when the CPU enters deepsleep
01221   * @rmtoll CPUCR     PDDS_D1       LL_PWR_CPU_GetD1PowerMode
01222   * @retval Returned value can be one of the following values:
01223   *         @arg @ref LL_PWR_CPU_MODE_D1STOP
01224   *         @arg @ref LL_PWR_CPU_MODE_D1STANDBY
01225   */
01226 __STATIC_INLINE uint32_t LL_PWR_CPU_GetD1PowerMode(void)
01227 {
01228   return (uint32_t)(READ_BIT(PWR->CPUCR, PWR_CPUCR_PDDS_D1));
01229 }
01230 #else
01231 /**
01232   * @brief  Get the CD Domain Power Down mode when the CPU enters deepsleep
01233   * @rmtoll CPUCR     RETDS_CD       LL_PWR_CPU_GetCDPowerMode
01234   * @retval Returned value can be one of the following values:
01235   *         @arg @ref LL_PWR_CPU_MODE_CDSTOP
01236   *         @arg @ref LL_PWR_CPU_MODE_CDSTOP2
01237   */
01238 __STATIC_INLINE uint32_t LL_PWR_CPU_GetCDPowerMode(void)
01239 {
01240   return (uint32_t)(READ_BIT(PWR->CPUCR, PWR_CPUCR_RETDS_CD));
01241 }
01242 #endif /* PWR_CPUCR_PDDS_D2 */
01243 
01244 #if defined (DUAL_CORE)
01245 /**
01246   * @brief  Get the D1 Domain Power Down mode when the CPU2 enters deepsleep
01247   * @rmtoll CPU2CR     PDDS_D1       LL_PWR_CPU2_GetD1PowerMode
01248   * @retval Returned value can be one of the following values:
01249   *         @arg @ref LL_PWR_CPU2_MODE_D1STOP
01250   *         @arg @ref LL_PWR_CPU2_MODE_D1STANDBY
01251   */
01252 __STATIC_INLINE uint32_t LL_PWR_CPU2_GetD1PowerMode(void)
01253 {
01254   return (uint32_t)(READ_BIT(PWR->CPU2CR, PWR_CPU2CR_PDDS_D1));
01255 }
01256 #endif /* DUAL_CORE */
01257 
01258 #if defined (PWR_CPUCR_PDDS_D2)
01259 /**
01260   * @brief  Set the D2 domain Power Down mode when the CPU enters deepsleep
01261   * @rmtoll CPUCR     PDDS_D2       LL_PWR_CPU_SetD2PowerMode
01262   * @param  PDMode This parameter can be one of the following values:
01263   *         @arg @ref LL_PWR_CPU_MODE_D2STOP
01264   *         @arg @ref LL_PWR_CPU_MODE_D2STANDBY
01265   * @retval None
01266   */
01267 __STATIC_INLINE void LL_PWR_CPU_SetD2PowerMode(uint32_t PDMode)
01268 {
01269   MODIFY_REG(PWR->CPUCR, PWR_CPUCR_PDDS_D2, PDMode);
01270 }
01271 #endif /* PWR_CPUCR_PDDS_D2 */
01272 
01273 #if defined (DUAL_CORE)
01274 /**
01275   * @brief  Set the D2 domain Power Down mode when the CPU2 enters deepsleep
01276   * @rmtoll CPU2CR     PDDS_D2       LL_PWR_CPU2_SetD2PowerMode
01277   * @param  PDMode This parameter can be one of the following values:
01278   *         @arg @ref LL_PWR_CPU2_MODE_D2STOP
01279   *         @arg @ref LL_PWR_CPU2_MODE_D2STANDBY
01280   * @retval None
01281   */
01282 __STATIC_INLINE void LL_PWR_CPU2_SetD2PowerMode(uint32_t PDMode)
01283 {
01284   MODIFY_REG(PWR->CPU2CR, PWR_CPU2CR_PDDS_D2, PDMode);
01285 }
01286 #endif /* DUAL_CORE */
01287 
01288 #if defined (PWR_CPUCR_PDDS_D2)
01289 /**
01290   * @brief  Get the D2 Domain Power Down mode when the CPU enters deepsleep
01291   * @rmtoll CPUCR     PDDS_D2       LL_PWR_CPU_GetD2PowerMode
01292   * @retval Returned value can be one of the following values:
01293   *         @arg @ref LL_PWR_CPU_MODE_D2STOP
01294   *         @arg @ref LL_PWR_CPU_MODE_D2STANDBY
01295   */
01296 __STATIC_INLINE uint32_t LL_PWR_CPU_GetD2PowerMode(void)
01297 {
01298   return (uint32_t)(READ_BIT(PWR->CPUCR, PWR_CPUCR_PDDS_D2));
01299 }
01300 #endif /* PWR_CPUCR_PDDS_D2 */
01301 
01302 #if defined (DUAL_CORE)
01303 /**
01304   * @brief  Get the D2 Domain Power Down mode when the CPU2 enters deepsleep
01305   * @rmtoll CPU2CR     PDDS_D2       LL_PWR_CPU2_GetD2PowerMode
01306   * @retval Returned value can be one of the following values:
01307   *         @arg @ref LL_PWR_CPU2_MODE_D2STOP
01308   *         @arg @ref LL_PWR_CPU2_MODE_D2STANDBY
01309   */
01310 __STATIC_INLINE uint32_t LL_PWR_CPU2_GetD2PowerMode(void)
01311 {
01312   return (uint32_t)(READ_BIT(PWR->CPU2CR, PWR_CPU2CR_PDDS_D2));
01313 }
01314 #endif /* DUAL_CORE */
01315 
01316 #if defined (PWR_CPUCR_PDDS_D2)
01317 /**
01318   * @brief  Set the D3 domain Power Down mode when the CPU enters deepsleep
01319   * @rmtoll CPUCR     PDDS_D3       LL_PWR_CPU_SetD3PowerMode
01320   * @param  PDMode This parameter can be one of the following values:
01321   *         @arg @ref LL_PWR_CPU_MODE_D3STOP
01322   *         @arg @ref LL_PWR_CPU_MODE_D3STANDBY
01323   * @retval None
01324   */
01325 __STATIC_INLINE void LL_PWR_CPU_SetD3PowerMode(uint32_t PDMode)
01326 {
01327   MODIFY_REG(PWR->CPUCR, PWR_CPUCR_PDDS_D3 , PDMode);
01328 }
01329 #else
01330 /**
01331   * @brief  Set the SRD domain Power Down mode when the CPU enters deepsleep
01332   * @rmtoll CPUCR     PDDS_SRD       LL_PWR_CPU_SetSRDPowerMode
01333   * @param  PDMode This parameter can be one of the following values:
01334   *         @arg @ref LL_PWR_CPU_MODE_SRDSTOP
01335   *         @arg @ref LL_PWR_CPU_MODE_SRDSTANDBY
01336   * @retval None
01337   */
01338 __STATIC_INLINE void LL_PWR_CPU_SetSRDPowerMode(uint32_t PDMode)
01339 {
01340   MODIFY_REG(PWR->CPUCR, PWR_CPUCR_PDDS_SRD , PDMode);
01341 }
01342 #endif /* PWR_CPUCR_PDDS_D2 */
01343 
01344 #if defined (DUAL_CORE)
01345 /**
01346   * @brief  Set the D3 domain Power Down mode when the CPU2 enters deepsleep
01347   * @rmtoll CPU2CR     PDDS_D3       LL_PWR_CPU2_SetD3PowerMode
01348   * @param  PDMode This parameter can be one of the following values:
01349   *         @arg @ref LL_PWR_CPU2_MODE_D3STOP
01350   *         @arg @ref LL_PWR_CPU2_MODE_D3STANDBY
01351   * @retval None
01352   */
01353 __STATIC_INLINE void LL_PWR_CPU2_SetD3PowerMode(uint32_t PDMode)
01354 {
01355   MODIFY_REG(PWR->CPU2CR, PWR_CPU2CR_PDDS_D3, PDMode);
01356 }
01357 #endif /* DUAL_CORE */
01358 
01359 #if defined (PWR_CPUCR_PDDS_D2)
01360 /**
01361   * @brief  Get the D3 Domain Power Down mode when the CPU enters deepsleep
01362   * @rmtoll CPUCR     PDDS_D3       LL_PWR_CPU_GetD3PowerMode
01363   * @retval Returned value can be one of the following values:
01364   *         @arg @ref LL_PWR_CPU_MODE_D3STOP
01365   *         @arg @ref LL_PWR_CPU_MODE_D3STANDBY
01366   */
01367 __STATIC_INLINE uint32_t LL_PWR_CPU_GetD3PowerMode(void)
01368 {
01369   return (uint32_t)(READ_BIT(PWR->CPUCR, PWR_CPUCR_PDDS_D3));
01370 }
01371 #else
01372 /**
01373   * @brief  Get the SRD Domain Power Down mode when the CPU enters deepsleep
01374   * @rmtoll CPUCR     PDDS_SRD       LL_PWR_CPU_GetSRDPowerMode
01375   * @retval Returned value can be one of the following values:
01376   *         @arg @ref LL_PWR_CPU_MODE_SRDSTOP
01377   *         @arg @ref LL_PWR_CPU_MODE_SRDSTANDBY
01378   */
01379 __STATIC_INLINE uint32_t LL_PWR_CPU_GetSRDPowerMode(void)
01380 {
01381   return (uint32_t)(READ_BIT(PWR->CPUCR, PWR_CPUCR_PDDS_SRD));
01382 }
01383 #endif /* PWR_CPUCR_PDDS_D2 */
01384 
01385 #if defined (DUAL_CORE)
01386 /**
01387   * @brief  Get the D3 Domain Power Down mode when the CPU2 enters deepsleep
01388   * @rmtoll CPU2CR     PDDS_D3       LL_PWR_CPU2_GetD3PowerMode
01389   * @retval Returned value can be one of the following values:
01390   *         @arg @ref LL_PWR_CPU2_MODE_D3STOP
01391   *         @arg @ref LL_PWR_CPU2_MODE_D3STANDBY
01392   */
01393 __STATIC_INLINE uint32_t LL_PWR_CPU2_GetD3PowerMode(void)
01394 {
01395   return (uint32_t)(READ_BIT(PWR->CPU2CR, PWR_CPU2CR_PDDS_D3));
01396 }
01397 #endif /* DUAL_CORE */
01398 
01399 #if defined (DUAL_CORE)
01400 /**
01401   * @brief  Hold the CPU1 and allocated peripherals when exiting from STOP mode
01402   * @rmtoll CPU2CR     HOLD1       LL_PWR_HoldCPU1
01403   * @retval None
01404   */
01405 __STATIC_INLINE void LL_PWR_HoldCPU1(void)
01406 {
01407   SET_BIT(PWR->CPU2CR, PWR_CPU2CR_HOLD1);
01408 }
01409 
01410 /**
01411   * @brief  Release the CPU1 and allocated peripherals
01412   * @rmtoll CPU2CR     HOLD1       LL_PWR_ReleaseCPU1
01413   * @retval None
01414   */
01415 __STATIC_INLINE void LL_PWR_ReleaseCPU1(void)
01416 {
01417   CLEAR_BIT(PWR->CPU2CR, PWR_CPU2CR_HOLD1);
01418 }
01419 
01420 /**
01421   * @brief  Ckeck if the CPU1 and allocated peripherals are held
01422   * @rmtoll CPU2CR     HOLD1       LL_PWR_IsCPU1Held
01423   * @retval State of bit (1 or 0).
01424   */
01425 __STATIC_INLINE uint32_t LL_PWR_IsCPU1Held(void)
01426 {
01427   return ((READ_BIT(PWR->CPU2CR, PWR_CPU2CR_HOLD1) == (PWR_CPU2CR_HOLD1))  ? 1UL : 0UL);
01428 }
01429 
01430 /**
01431   * @brief  Hold the CPU2 and allocated peripherals when exiting from STOP mode
01432   * @rmtoll CPUCR     HOLD2       LL_PWR_HoldCPU2
01433   * @retval None
01434   */
01435 __STATIC_INLINE void LL_PWR_HoldCPU2(void)
01436 {
01437   SET_BIT(PWR->CPUCR, PWR_CPUCR_HOLD2);
01438 }
01439 
01440 /**
01441   * @brief  Release the CPU2 and allocated peripherals
01442   * @rmtoll CPUCR     HOLD2       LL_PWR_ReleaseCPU2
01443   * @retval None
01444   */
01445 __STATIC_INLINE void LL_PWR_ReleaseCPU2(void)
01446 {
01447   CLEAR_BIT(PWR->CPUCR, PWR_CPUCR_HOLD2);
01448 }
01449 
01450 /**
01451   * @brief  Ckeck if the CPU2 and allocated peripherals are held
01452   * @rmtoll CPUCR     HOLD2       LL_PWR_IsCPU2Held
01453   * @retval State of bit (1 or 0).
01454   */
01455 __STATIC_INLINE uint32_t LL_PWR_IsCPU2Held(void)
01456 {
01457   return ((READ_BIT(PWR->CPUCR, PWR_CPUCR_HOLD2) == (PWR_CPUCR_HOLD2)) ? 1UL : 0UL);
01458 }
01459 #endif /* DUAL_CORE */
01460 
01461 #if defined (PWR_CPUCR_PDDS_D2)
01462 /**
01463   * @brief  D3 domain remains in Run mode regardless of CPU subsystem modes
01464   * @rmtoll CPUCR     RUN_D3       LL_PWR_CPU_EnableD3RunInLowPowerMode
01465   * @retval None
01466   */
01467 __STATIC_INLINE void LL_PWR_CPU_EnableD3RunInLowPowerMode(void)
01468 {
01469   SET_BIT(PWR->CPUCR, PWR_CPUCR_RUN_D3);
01470 }
01471 #else
01472 /**
01473   * @brief  SRD domain remains in Run mode regardless of CPU subsystem modes
01474   * @rmtoll CPUCR     RUN_SRD      LL_PWR_CPU_EnableSRDRunInLowPowerMode
01475   * @retval None
01476   */
01477 __STATIC_INLINE void LL_PWR_CPU_EnableSRDRunInLowPowerMode(void)
01478 {
01479   SET_BIT(PWR->CPUCR, PWR_CPUCR_RUN_SRD);
01480 }
01481 #endif /* PWR_CPUCR_PDDS_D2 */
01482 
01483 #if defined (DUAL_CORE)
01484 /**
01485   * @brief  D3 domain remains in Run mode regardless of CPU2 subsystem modes
01486   * @rmtoll CPU2CR     RUN_D3       LL_PWR_CPU2_EnableD3RunInLowPowerMode
01487   * @retval None
01488   */
01489 __STATIC_INLINE void LL_PWR_CPU2_EnableD3RunInLowPowerMode(void)
01490 {
01491   SET_BIT(PWR->CPU2CR, PWR_CPU2CR_RUN_D3);
01492 }
01493 #endif /* DUAL_CORE */
01494 
01495 #if defined (PWR_CPUCR_PDDS_D2)
01496 /**
01497   * @brief  D3 domain follows CPU subsystem modes
01498   * @rmtoll CPUCR     RUN_D3       LL_PWR_CPU_DisableD3RunInLowPowerMode
01499   * @retval None
01500   */
01501 __STATIC_INLINE void LL_PWR_CPU_DisableD3RunInLowPowerMode(void)
01502 {
01503   CLEAR_BIT(PWR->CPUCR, PWR_CPUCR_RUN_D3);
01504 }
01505 #else
01506 /**
01507   * @brief  SRD domain follows CPU subsystem modes
01508   * @rmtoll CPUCR     RUN_SRD      LL_PWR_CPU_DisableSRDRunInLowPowerMode
01509   * @retval None
01510   */
01511 __STATIC_INLINE void LL_PWR_CPU_DisableSRDRunInLowPowerMode(void)
01512 {
01513   CLEAR_BIT(PWR->CPUCR, PWR_CPUCR_RUN_SRD);
01514 }
01515 #endif /* PWR_CPUCR_PDDS_D2 */
01516 
01517 #if defined (DUAL_CORE)
01518 /**
01519   * @brief  D3 domain follows CPU2 subsystem modes
01520   * @rmtoll CPU2CR     RUN_D3       LL_PWR_CPU2_DisableD3RunInLowPowerMode
01521   * @retval None
01522   */
01523 __STATIC_INLINE void LL_PWR_CPU2_DisableD3RunInLowPowerMode(void)
01524 {
01525   CLEAR_BIT(PWR->CPU2CR, PWR_CPU2CR_RUN_D3);
01526 }
01527 #endif /* DUAL_CORE */
01528 
01529 #if defined (PWR_CPUCR_PDDS_D2)
01530 /**
01531   * @brief  Check if D3 is kept in Run mode when CPU enters low power mode
01532   * @rmtoll CPUCR     RUN_D3    LL_PWR_CPU_IsEnabledD3RunInLowPowerMode
01533   * @retval State of bit (1 or 0).
01534   */
01535 __STATIC_INLINE uint32_t LL_PWR_CPU_IsEnabledD3RunInLowPowerMode(void)
01536 {
01537   return ((READ_BIT(PWR->CPUCR, PWR_CPUCR_RUN_D3) == (PWR_CPUCR_RUN_D3)) ? 1UL : 0UL);
01538 }
01539 #else
01540 /**
01541   * @brief  Check if SRD is kept in Run mode when CPU enters low power mode
01542   * @rmtoll CPUCR     RUN_SRD    LL_PWR_CPU_IsEnabledSRDRunInLowPowerMode
01543   * @retval State of bit (1 or 0).
01544   */
01545 __STATIC_INLINE uint32_t LL_PWR_CPU_IsEnabledSRDRunInLowPowerMode(void)
01546 {
01547   return ((READ_BIT(PWR->CPUCR, PWR_CPUCR_RUN_SRD) == (PWR_CPUCR_RUN_SRD)) ? 1UL : 0UL);
01548 }
01549 #endif /* PWR_CPUCR_PDDS_D2 */
01550 
01551 #if defined (DUAL_CORE)
01552 /**
01553   * @brief  Check if D3 is kept in Run mode when CPU2 enters low power mode
01554   * @rmtoll CPU2CR     RUN_D3    LL_PWR_CPU2_IsEnabledD3RunInLowPowerMode
01555   * @retval State of bit (1 or 0).
01556   */
01557 __STATIC_INLINE uint32_t LL_PWR_CPU2_IsEnabledD3RunInLowPowerMode(void)
01558 {
01559   return ((READ_BIT(PWR->CPU2CR, PWR_CPU2CR_RUN_D3) == (PWR_CPU2CR_RUN_D3)) ? 1UL : 0UL);
01560 }
01561 #endif /* DUAL_CORE */
01562 
01563 /**
01564   * @brief  Set the main internal Regulator output voltage
01565   * @rmtoll D3CR    VOS       LL_PWR_SetRegulVoltageScaling
01566   * @param  VoltageScaling This parameter can be one of the following values:
01567   *         @arg @ref LL_PWR_REGU_VOLTAGE_SCALE0
01568   *         @arg @ref LL_PWR_REGU_VOLTAGE_SCALE1
01569   *         @arg @ref LL_PWR_REGU_VOLTAGE_SCALE2
01570   *         @arg @ref LL_PWR_REGU_VOLTAGE_SCALE3
01571   * @note   For all H7 lines except STM32H7Axxx and STM32H7Bxxx lines, VOS0
01572   *         is applied when PWR_D3CR_VOS[1:0] = 0b11 and  SYSCFG_PWRCR_ODEN = 0b1.
01573   * @retval None
01574   */
01575 __STATIC_INLINE void LL_PWR_SetRegulVoltageScaling(uint32_t VoltageScaling)
01576 {
01577 #if defined (PWR_CPUCR_PDDS_D2)
01578   MODIFY_REG(PWR->D3CR, PWR_D3CR_VOS, VoltageScaling);
01579 #else
01580   MODIFY_REG(PWR->SRDCR, PWR_SRDCR_VOS, VoltageScaling);
01581 #endif /* PWR_CPUCR_PDDS_D2 */
01582 }
01583 
01584 /**
01585   * @brief  Get the main internal Regulator output voltage
01586   * @rmtoll D3CR    VOS       LL_PWR_GetRegulVoltageScaling
01587   * @note   For all H7 lines except STM32H7Axxx and STM32H7Bxxx lines, checking
01588   *         VOS0 need the check of PWR_D3CR_VOS[1:0] field and SYSCFG_PWRCR_ODEN bit.
01589   * @retval Returned value can be one of the following values:
01590   *         @arg @ref LL_PWR_REGU_VOLTAGE_SCALE0
01591   *         @arg @ref LL_PWR_REGU_VOLTAGE_SCALE1
01592   *         @arg @ref LL_PWR_REGU_VOLTAGE_SCALE2
01593   *         @arg @ref LL_PWR_REGU_VOLTAGE_SCALE3
01594   */
01595 __STATIC_INLINE uint32_t LL_PWR_GetRegulVoltageScaling(void)
01596 {
01597 #if defined (PWR_CPUCR_PDDS_D2)
01598   return (uint32_t)(READ_BIT(PWR->D3CR, PWR_D3CR_VOS));
01599 #else
01600   return (uint32_t)(READ_BIT(PWR->SRDCR, PWR_SRDCR_VOS));
01601 #endif /* PWR_CPUCR_PDDS_D2 */
01602 }
01603 
01604 /**
01605   * @brief  Enable the WakeUp PINx functionality
01606   * @rmtoll WKUPEPR   WKUPEN1       LL_PWR_EnableWakeUpPin\n
01607   *         WKUPEPR   WKUPEN2       LL_PWR_EnableWakeUpPin\n
01608   *         WKUPEPR   WKUPEN3       LL_PWR_EnableWakeUpPin\n
01609   *         WKUPEPR   WKUPEN4       LL_PWR_EnableWakeUpPin\n
01610   *         WKUPEPR   WKUPEN5       LL_PWR_EnableWakeUpPin\n
01611   *         WKUPEPR   WKUPEN6       LL_PWR_EnableWakeUpPin
01612   * @param  WakeUpPin This parameter can be one of the following values:
01613   *         @arg @ref LL_PWR_WAKEUP_PIN1
01614   *         @arg @ref LL_PWR_WAKEUP_PIN2
01615   *         @arg @ref LL_PWR_WAKEUP_PIN3 (*)
01616   *         @arg @ref LL_PWR_WAKEUP_PIN4
01617   *         @arg @ref LL_PWR_WAKEUP_PIN5 (*)
01618   *         @arg @ref LL_PWR_WAKEUP_PIN6
01619   *
01620   *         (*) value not defined in all devices.
01621   *
01622   * @retval None
01623   */
01624 __STATIC_INLINE void LL_PWR_EnableWakeUpPin(uint32_t WakeUpPin)
01625 {
01626   SET_BIT(PWR->WKUPEPR, WakeUpPin);
01627 }
01628 
01629 /**
01630   * @brief  Disable the WakeUp PINx functionality
01631   * @rmtoll WKUPEPR   WKUPEN1       LL_PWR_DisableWakeUpPin\n
01632   *         WKUPEPR   WKUPEN2       LL_PWR_DisableWakeUpPin\n
01633   *         WKUPEPR   WKUPEN3       LL_PWR_DisableWakeUpPin\n
01634   *         WKUPEPR   WKUPEN4       LL_PWR_DisableWakeUpPin\n
01635   *         WKUPEPR   WKUPEN5       LL_PWR_DisableWakeUpPin\n
01636   *         WKUPEPR   WKUPEN6       LL_PWR_DisableWakeUpPin
01637   * @param  WakeUpPin This parameter can be one of the following values:
01638   *         @arg @ref LL_PWR_WAKEUP_PIN1
01639   *         @arg @ref LL_PWR_WAKEUP_PIN2
01640   *         @arg @ref LL_PWR_WAKEUP_PIN3 (*)
01641   *         @arg @ref LL_PWR_WAKEUP_PIN4
01642   *         @arg @ref LL_PWR_WAKEUP_PIN5 (*)
01643   *         @arg @ref LL_PWR_WAKEUP_PIN6
01644   *
01645   *         (*) value not defined in all devices.
01646   *
01647   * @retval None
01648   */
01649 __STATIC_INLINE void LL_PWR_DisableWakeUpPin(uint32_t WakeUpPin)
01650 {
01651   CLEAR_BIT(PWR->WKUPEPR, WakeUpPin);
01652 }
01653 
01654 /**
01655   * @brief  Check if the WakeUp PINx functionality is enabled
01656   * @rmtoll WKUPEPR   WKUPEN1       LL_PWR_IsEnabledWakeUpPin\n
01657   *         WKUPEPR   WKUPEN2       LL_PWR_IsEnabledWakeUpPin\n
01658   *         WKUPEPR   WKUPEN3       LL_PWR_IsEnabledWakeUpPin\n
01659   *         WKUPEPR   WKUPEN4       LL_PWR_IsEnabledWakeUpPin\n
01660   *         WKUPEPR   WKUPEN5       LL_PWR_IsEnabledWakeUpPin\n
01661   *         WKUPEPR   WKUPEN6       LL_PWR_IsEnabledWakeUpPin
01662   * @param  WakeUpPin This parameter can be one of the following values:
01663   *         @arg @ref LL_PWR_WAKEUP_PIN1
01664   *         @arg @ref LL_PWR_WAKEUP_PIN2
01665   *         @arg @ref LL_PWR_WAKEUP_PIN3 (*)
01666   *         @arg @ref LL_PWR_WAKEUP_PIN4
01667   *         @arg @ref LL_PWR_WAKEUP_PIN5 (*)
01668   *         @arg @ref LL_PWR_WAKEUP_PIN6
01669   *
01670   *         (*) value not defined in all devices.
01671   *
01672   * @retval State of bit (1 or 0).
01673   */
01674 __STATIC_INLINE uint32_t LL_PWR_IsEnabledWakeUpPin(uint32_t WakeUpPin)
01675 {
01676   return ((READ_BIT(PWR->WKUPEPR, WakeUpPin) == (WakeUpPin)) ? 1UL : 0UL);
01677 }
01678 
01679 /**
01680   * @brief  Set the Wake-Up pin polarity low for the event detection
01681   * @rmtoll WKUPEPR   WKUPP1       LL_PWR_SetWakeUpPinPolarityLow\n
01682   *         WKUPEPR   WKUPP2       LL_PWR_SetWakeUpPinPolarityLow\n
01683   *         WKUPEPR   WKUPP3       LL_PWR_SetWakeUpPinPolarityLow\n
01684   *         WKUPEPR   WKUPP4       LL_PWR_SetWakeUpPinPolarityLow\n
01685   *         WKUPEPR   WKUPP5       LL_PWR_SetWakeUpPinPolarityLow\n
01686   *         WKUPEPR   WKUPP6       LL_PWR_SetWakeUpPinPolarityLow
01687   * @param  WakeUpPin This parameter can be one of the following values:
01688   *         @arg @ref LL_PWR_WAKEUP_PIN1
01689   *         @arg @ref LL_PWR_WAKEUP_PIN2
01690   *         @arg @ref LL_PWR_WAKEUP_PIN3 (*)
01691   *         @arg @ref LL_PWR_WAKEUP_PIN4
01692   *         @arg @ref LL_PWR_WAKEUP_PIN5 (*)
01693   *         @arg @ref LL_PWR_WAKEUP_PIN6
01694   *
01695   *         (*) value not defined in all devices.
01696   *
01697   * @retval None
01698   */
01699 __STATIC_INLINE void LL_PWR_SetWakeUpPinPolarityLow(uint32_t WakeUpPin)
01700 {
01701   SET_BIT(PWR->WKUPEPR, (WakeUpPin << PWR_WKUPEPR_WKUPP1_Pos));
01702 }
01703 
01704 /**
01705   * @brief  Set the Wake-Up pin polarity high for the event detection
01706   * @rmtoll WKUPEPR   WKUPP1       LL_PWR_SetWakeUpPinPolarityHigh\n
01707   *         WKUPEPR   WKUPP2       LL_PWR_SetWakeUpPinPolarityHigh\n
01708   *         WKUPEPR   WKUPP3       LL_PWR_SetWakeUpPinPolarityHigh\n
01709   *         WKUPEPR   WKUPP4       LL_PWR_SetWakeUpPinPolarityHigh\n
01710   *         WKUPEPR   WKUPP5       LL_PWR_SetWakeUpPinPolarityHigh\n
01711   *         WKUPEPR   WKUPP6       LL_PWR_SetWakeUpPinPolarityHigh
01712   * @param  WakeUpPin This parameter can be one of the following values:
01713   *         @arg @ref LL_PWR_WAKEUP_PIN1
01714   *         @arg @ref LL_PWR_WAKEUP_PIN2
01715   *         @arg @ref LL_PWR_WAKEUP_PIN3 (*)
01716   *         @arg @ref LL_PWR_WAKEUP_PIN4
01717   *         @arg @ref LL_PWR_WAKEUP_PIN5 (*)
01718   *         @arg @ref LL_PWR_WAKEUP_PIN6
01719   *
01720   *         (*) value not defined in all devices.
01721   *
01722   * @retval None
01723   */
01724 __STATIC_INLINE void LL_PWR_SetWakeUpPinPolarityHigh(uint32_t WakeUpPin)
01725 {
01726   CLEAR_BIT(PWR->WKUPEPR, (WakeUpPin << PWR_WKUPEPR_WKUPP1_Pos));
01727 }
01728 
01729 /**
01730   * @brief  Get the Wake-Up pin polarity for the event detection
01731   * @rmtoll WKUPEPR   WKUPP1       LL_PWR_IsWakeUpPinPolarityLow\n
01732   *         WKUPEPR   WKUPP2       LL_PWR_IsWakeUpPinPolarityLow\n
01733   *         WKUPEPR   WKUPP3       LL_PWR_IsWakeUpPinPolarityLow\n
01734   *         WKUPEPR   WKUPP4       LL_PWR_IsWakeUpPinPolarityLow\n
01735   *         WKUPEPR   WKUPP5       LL_PWR_IsWakeUpPinPolarityLow\n
01736   *         WKUPEPR   WKUPP6       LL_PWR_IsWakeUpPinPolarityLow
01737   * @param  WakeUpPin This parameter can be one of the following values:
01738   *         @arg @ref LL_PWR_WAKEUP_PIN1
01739   *         @arg @ref LL_PWR_WAKEUP_PIN2
01740   *         @arg @ref LL_PWR_WAKEUP_PIN3 (*)
01741   *         @arg @ref LL_PWR_WAKEUP_PIN4
01742   *         @arg @ref LL_PWR_WAKEUP_PIN5 (*)
01743   *         @arg @ref LL_PWR_WAKEUP_PIN6
01744   *
01745   *         (*) value not defined in all devices.
01746   *
01747   * @retval State of bit (1 or 0).
01748   */
01749 __STATIC_INLINE uint32_t LL_PWR_IsWakeUpPinPolarityLow(uint32_t WakeUpPin)
01750 {
01751   return ((READ_BIT(PWR->WKUPEPR, (WakeUpPin << PWR_WKUPEPR_WKUPP1_Pos)) == (WakeUpPin << PWR_WKUPEPR_WKUPP1_Pos)) ? 1UL : 0UL);
01752 }
01753 
01754 /**
01755   * @brief  Set the Wake-Up pin Pull None
01756   * @rmtoll WKUPEPR   WKUPPUPD1       LL_PWR_SetWakeUpPinPullNone\n
01757   *         WKUPEPR   WKUPPUPD2       LL_PWR_SetWakeUpPinPullNone\n
01758   *         WKUPEPR   WKUPPUPD3       LL_PWR_SetWakeUpPinPullNone\n
01759   *         WKUPEPR   WKUPPUPD4       LL_PWR_SetWakeUpPinPullNone\n
01760   *         WKUPEPR   WKUPPUPD5       LL_PWR_SetWakeUpPinPullNone\n
01761   *         WKUPEPR   WKUPPUPD6       LL_PWR_SetWakeUpPinPullNone
01762   * @param  WakeUpPin This parameter can be one of the following values:
01763   *         @arg @ref LL_PWR_WAKEUP_PIN1
01764   *         @arg @ref LL_PWR_WAKEUP_PIN2
01765   *         @arg @ref LL_PWR_WAKEUP_PIN3 (*)
01766   *         @arg @ref LL_PWR_WAKEUP_PIN4
01767   *         @arg @ref LL_PWR_WAKEUP_PIN5 (*)
01768   *         @arg @ref LL_PWR_WAKEUP_PIN6
01769   *
01770   *         (*) value not defined in all devices.
01771   *
01772   * @retval None
01773   */
01774 __STATIC_INLINE void LL_PWR_SetWakeUpPinPullNone(uint32_t WakeUpPin)
01775 {
01776   MODIFY_REG(PWR->WKUPEPR, \
01777             (PWR_WKUPEPR_WKUPPUPD1 << ((LL_PWR_WAKEUP_PINS_PULL_SHIFT_OFFSET * POSITION_VAL(WakeUpPin)) & LL_PWR_WAKEUP_PINS_MAX_SHIFT_MASK)), \
01778             (LL_PWR_WAKEUP_PIN_NOPULL << ((PWR_WKUPEPR_WKUPPUPD1_Pos + (LL_PWR_WAKEUP_PINS_PULL_SHIFT_OFFSET * POSITION_VAL(WakeUpPin))) & LL_PWR_WAKEUP_PINS_MAX_SHIFT_MASK)));
01779 }
01780 
01781 /**
01782   * @brief  Set the Wake-Up pin Pull Up
01783   * @rmtoll WKUPEPR   WKUPPUPD1       LL_PWR_SetWakeUpPinPullUp\n
01784   *         WKUPEPR   WKUPPUPD2       LL_PWR_SetWakeUpPinPullUp\n
01785   *         WKUPEPR   WKUPPUPD3       LL_PWR_SetWakeUpPinPullUp\n
01786   *         WKUPEPR   WKUPPUPD4       LL_PWR_SetWakeUpPinPullUp\n
01787   *         WKUPEPR   WKUPPUPD5       LL_PWR_SetWakeUpPinPullUp\n
01788   *         WKUPEPR   WKUPPUPD6       LL_PWR_SetWakeUpPinPullUp
01789   * @param  WakeUpPin This parameter can be one of the following values:
01790   *         @arg @ref LL_PWR_WAKEUP_PIN1
01791   *         @arg @ref LL_PWR_WAKEUP_PIN2
01792   *         @arg @ref LL_PWR_WAKEUP_PIN3 (*)
01793   *         @arg @ref LL_PWR_WAKEUP_PIN4
01794   *         @arg @ref LL_PWR_WAKEUP_PIN5 (*)
01795   *         @arg @ref LL_PWR_WAKEUP_PIN6
01796   *
01797   *         (*) value not defined in all devices.
01798   *
01799   * @retval None
01800   */
01801 __STATIC_INLINE void LL_PWR_SetWakeUpPinPullUp(uint32_t WakeUpPin)
01802 {
01803   MODIFY_REG(PWR->WKUPEPR, \
01804             (PWR_WKUPEPR_WKUPPUPD1 << ((LL_PWR_WAKEUP_PINS_PULL_SHIFT_OFFSET * POSITION_VAL(WakeUpPin)) & LL_PWR_WAKEUP_PINS_MAX_SHIFT_MASK)), \
01805             (LL_PWR_WAKEUP_PIN_PULLUP << ((PWR_WKUPEPR_WKUPPUPD1_Pos + (LL_PWR_WAKEUP_PINS_PULL_SHIFT_OFFSET * POSITION_VAL(WakeUpPin))) & LL_PWR_WAKEUP_PINS_MAX_SHIFT_MASK)));
01806 }
01807 
01808 /**
01809   * @brief  Set the Wake-Up pin Pull Down
01810   * @rmtoll WKUPEPR   WKUPPUPD1       LL_PWR_SetWakeUpPinPullDown\n
01811   *         WKUPEPR   WKUPPUPD2       LL_PWR_SetWakeUpPinPullDown\n
01812   *         WKUPEPR   WKUPPUPD3       LL_PWR_SetWakeUpPinPullDown\n
01813   *         WKUPEPR   WKUPPUPD4       LL_PWR_SetWakeUpPinPullDown\n
01814   *         WKUPEPR   WKUPPUPD5       LL_PWR_SetWakeUpPinPullDown\n
01815   *         WKUPEPR   WKUPPUPD6       LL_PWR_SetWakeUpPinPullDown
01816   * @param  WakeUpPin This parameter can be one of the following values:
01817   *         @arg @ref LL_PWR_WAKEUP_PIN1
01818   *         @arg @ref LL_PWR_WAKEUP_PIN2
01819   *         @arg @ref LL_PWR_WAKEUP_PIN3 (*)
01820   *         @arg @ref LL_PWR_WAKEUP_PIN4
01821   *         @arg @ref LL_PWR_WAKEUP_PIN5 (*)
01822   *         @arg @ref LL_PWR_WAKEUP_PIN6
01823   *
01824   *         (*) value not defined in all devices.
01825   *
01826   * @retval None
01827   */
01828 __STATIC_INLINE void LL_PWR_SetWakeUpPinPullDown(uint32_t WakeUpPin)
01829 {
01830   MODIFY_REG(PWR->WKUPEPR, \
01831             (PWR_WKUPEPR_WKUPPUPD1 << ((LL_PWR_WAKEUP_PINS_PULL_SHIFT_OFFSET * POSITION_VAL(WakeUpPin)) & LL_PWR_WAKEUP_PINS_MAX_SHIFT_MASK)), \
01832             (LL_PWR_WAKEUP_PIN_PULLDOWN << ((PWR_WKUPEPR_WKUPPUPD1_Pos + (LL_PWR_WAKEUP_PINS_PULL_SHIFT_OFFSET * POSITION_VAL(WakeUpPin))) & LL_PWR_WAKEUP_PINS_MAX_SHIFT_MASK)));
01833 }
01834 
01835 /**
01836   * @brief  Get the Wake-Up pin pull
01837   * @rmtoll WKUPEPR   WKUPPUPD1       LL_PWR_GetWakeUpPinPull\n
01838   *         WKUPEPR   WKUPPUPD2       LL_PWR_GetWakeUpPinPull\n
01839   *         WKUPEPR   WKUPPUPD3       LL_PWR_GetWakeUpPinPull\n
01840   *         WKUPEPR   WKUPPUPD4       LL_PWR_GetWakeUpPinPull\n
01841   *         WKUPEPR   WKUPPUPD5       LL_PWR_GetWakeUpPinPull\n
01842   *         WKUPEPR   WKUPPUPD6       LL_PWR_GetWakeUpPinPull
01843   * @param  WakeUpPin This parameter can be one of the following values:
01844   *         @arg @ref LL_PWR_WAKEUP_PIN1
01845   *         @arg @ref LL_PWR_WAKEUP_PIN2
01846   *         @arg @ref LL_PWR_WAKEUP_PIN3 (*)
01847   *         @arg @ref LL_PWR_WAKEUP_PIN4
01848   *         @arg @ref LL_PWR_WAKEUP_PIN5 (*)
01849   *         @arg @ref LL_PWR_WAKEUP_PIN6
01850   *
01851   *         (*) value not defined in all devices.
01852   *
01853   * @retval Returned value can be one of the following values:
01854   *         @arg @ref LL_PWR_WAKEUP_PIN_NOPULL
01855   *         @arg @ref LL_PWR_WAKEUP_PIN_PULLUP
01856   *         @arg @ref LL_PWR_WAKEUP_PIN_PULLDOWN
01857   */
01858 __STATIC_INLINE uint32_t LL_PWR_GetWakeUpPinPull(uint32_t WakeUpPin)
01859 {
01860   uint32_t regValue = READ_BIT(PWR->WKUPEPR, (PWR_WKUPEPR_WKUPPUPD1 << ((LL_PWR_WAKEUP_PINS_PULL_SHIFT_OFFSET * POSITION_VAL(WakeUpPin)) & LL_PWR_WAKEUP_PINS_MAX_SHIFT_MASK)));
01861 
01862   return (uint32_t)(regValue >> ((PWR_WKUPEPR_WKUPPUPD1_Pos + (LL_PWR_WAKEUP_PINS_PULL_SHIFT_OFFSET * POSITION_VAL(WakeUpPin))) & LL_PWR_WAKEUP_PINS_MAX_SHIFT_MASK));
01863 }
01864 
01865 /**
01866   * @}
01867   */
01868 
01869 /** @defgroup PWR_LL_EF_FLAG_Management FLAG_Management
01870   * @{
01871   */
01872 
01873 /**
01874   * @brief  Indicate whether VDD voltage is below the selected PVD threshold
01875   * @rmtoll CSR1   PVDO       LL_PWR_IsActiveFlag_PVDO
01876   * @retval State of bit (1 or 0).
01877   */
01878 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_PVDO(void)
01879 {
01880   return ((READ_BIT(PWR->CSR1, PWR_CSR1_PVDO) == (PWR_CSR1_PVDO)) ? 1UL : 0UL);
01881 }
01882 
01883 /**
01884   * @brief  Indicate whether the voltage level is ready for current actual used VOS
01885   * @rmtoll CSR1   ACTVOSRDY       LL_PWR_IsActiveFlag_ACTVOS
01886   * @retval State of bit (1 or 0).
01887   */
01888 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_ACTVOS(void)
01889 {
01890   return ((READ_BIT(PWR->CSR1, PWR_CSR1_ACTVOSRDY) == (PWR_CSR1_ACTVOSRDY)) ? 1UL : 0UL);
01891 }
01892 
01893 /**
01894   * @brief  Indicate whether VDDA voltage is below the selected AVD threshold
01895   * @rmtoll CSR1   AVDO       LL_PWR_IsActiveFlag_AVDO
01896   * @retval State of bit (1 or 0).
01897   */
01898 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_AVDO(void)
01899 {
01900   return ((READ_BIT(PWR->CSR1, PWR_CSR1_AVDO) == (PWR_CSR1_AVDO)) ? 1UL : 0UL);
01901 }
01902 
01903 #if defined (PWR_CSR1_MMCVDO)
01904 /**
01905   * @brief  Indicate whether VDDMMC voltage is below 1V2
01906   * @rmtoll CSR1   MMCVDO     LL_PWR_IsActiveFlag_MMCVDO
01907   * @retval State of bit (1 or 0).
01908   */
01909 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_MMCVDO(void)
01910 {
01911   return ((READ_BIT(PWR->CSR1, PWR_CSR1_MMCVDO) == (PWR_CSR1_MMCVDO)) ? 1UL : 0UL);
01912 }
01913 #endif /* PWR_CSR1_MMCVDO */
01914 
01915 /**
01916   * @brief  Get Backup Regulator ready Flag
01917   * @rmtoll CR2   BRRDY       LL_PWR_IsActiveFlag_BRR
01918   * @retval State of bit (1 or 0).
01919   */
01920 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_BRR(void)
01921 {
01922   return ((READ_BIT(PWR->CR2, PWR_CR2_BRRDY) == (PWR_CR2_BRRDY)) ? 1UL : 0UL);
01923 }
01924 
01925 /**
01926   * @brief  Indicate whether the VBAT level is above or below low threshold
01927   * @rmtoll CR2   VBATL       LL_PWR_IsActiveFlag_VBATL
01928   * @retval State of bit (1 or 0).
01929   */
01930 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_VBATL(void)
01931 {
01932   return ((READ_BIT(PWR->CR2, PWR_CR2_VBATL) == (PWR_CR2_VBATL)) ? 1UL : 0UL);
01933 }
01934 
01935 /**
01936   * @brief  Indicate whether the VBAT level is above or below high threshold
01937   * @rmtoll CR2   VBATH       LL_PWR_IsActiveFlag_VBATH
01938   * @retval State of bit (1 or 0).
01939   */
01940 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_VBATH(void)
01941 {
01942   return ((READ_BIT(PWR->CR2, PWR_CR2_VBATH) == (PWR_CR2_VBATH)) ? 1UL : 0UL);
01943 }
01944 
01945 /**
01946   * @brief  Indicate whether the CPU temperature level is above or below low threshold
01947   * @rmtoll CR2   TEMPL       LL_PWR_IsActiveFlag_TEMPL
01948   * @retval State of bit (1 or 0).
01949   */
01950 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_TEMPL(void)
01951 {
01952   return ((READ_BIT(PWR->CR2, PWR_CR2_TEMPL) == (PWR_CR2_TEMPL)) ? 1UL : 0UL);
01953 }
01954 
01955 /**
01956   * @brief  Indicate whether the CPU temperature level is above or below high threshold
01957   * @rmtoll CR2   TEMPH       LL_PWR_IsActiveFlag_TEMPH
01958   * @retval State of bit (1 or 0).
01959   */
01960 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_TEMPH(void)
01961 {
01962   return ((READ_BIT(PWR->CR2, PWR_CR2_TEMPH) == (PWR_CR2_TEMPH)) ? 1UL : 0UL);
01963 }
01964 
01965 #if defined (SMPS)
01966 /**
01967   * @brief  Indicate whether the SMPS external supply is ready or not
01968   * @rmtoll CR3   SMPSEXTRDY       LL_PWR_IsActiveFlag_SMPSEXT
01969   * @retval State of bit (1 or 0).
01970   */
01971 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_SMPSEXT(void)
01972 {
01973   return ((READ_BIT(PWR->CR3, PWR_CR3_SMPSEXTRDY) == (PWR_CR3_SMPSEXTRDY)) ? 1UL : 0UL);
01974 }
01975 #endif /* SMPS */
01976 
01977 /**
01978   * @brief  Indicate whether the USB supply is ready or not
01979   * @rmtoll CR3   USBRDY       LL_PWR_IsActiveFlag_USB
01980   * @retval State of bit (1 or 0).
01981   */
01982 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_USB(void)
01983 {
01984   return ((READ_BIT(PWR->CR3, PWR_CR3_USB33RDY) == (PWR_CR3_USB33RDY)) ? 1UL : 0UL);
01985 }
01986 
01987 #if defined (DUAL_CORE)
01988 /**
01989   * @brief  Get HOLD2 Flag
01990   * @rmtoll CPUCR   HOLD2F       LL_PWR_IsActiveFlag_HOLD2
01991   * @retval State of bit (1 or 0).
01992   */
01993 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_HOLD2(void)
01994 {
01995   return ((READ_BIT(PWR->CPUCR, PWR_CPUCR_HOLD2F) == (PWR_CPUCR_HOLD2F)) ? 1UL : 0UL);
01996 }
01997 
01998 /**
01999   * @brief  Get HOLD1 Flag
02000   * @rmtoll CPU2CR   HOLD1F       LL_PWR_IsActiveFlag_HOLD1
02001   * @retval State of bit (1 or 0).
02002   */
02003 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_HOLD1(void)
02004 {
02005   return ((READ_BIT(PWR->CPU2CR, PWR_CPU2CR_HOLD1F) == (PWR_CPU2CR_HOLD1F)) ? 1UL : 0UL);
02006 }
02007 #endif /* DUAL_CORE */
02008 
02009 /**
02010   * @brief  Get CPU System Stop Flag
02011   * @rmtoll CPUCR   STOPF       LL_PWR_CPU_IsActiveFlag_STOP
02012   * @retval State of bit (1 or 0).
02013   */
02014 __STATIC_INLINE uint32_t LL_PWR_CPU_IsActiveFlag_STOP(void)
02015 {
02016   return ((READ_BIT(PWR->CPUCR, PWR_CPUCR_STOPF) == (PWR_CPUCR_STOPF)) ? 1UL : 0UL);
02017 }
02018 
02019 #if defined (DUAL_CORE)
02020 /**
02021   * @brief  Get CPU2 System Stop Flag
02022   * @rmtoll CPU2CR   STOPF       LL_PWR_CPU2_IsActiveFlag_STOP
02023   * @retval State of bit (1 or 0).
02024   */
02025 __STATIC_INLINE uint32_t LL_PWR_CPU2_IsActiveFlag_STOP(void)
02026 {
02027   return ((READ_BIT(PWR->CPU2CR, PWR_CPU2CR_STOPF) == (PWR_CPU2CR_STOPF)) ? 1UL : 0UL);
02028 }
02029 #endif /* DUAL_CORE */
02030 
02031 /**
02032   * @brief  Get CPU System Standby Flag
02033   * @rmtoll CPUCR   SBF       LL_PWR_CPU_IsActiveFlag_SB
02034   * @retval State of bit (1 or 0).
02035   */
02036 __STATIC_INLINE uint32_t LL_PWR_CPU_IsActiveFlag_SB(void)
02037 {
02038   return ((READ_BIT(PWR->CPUCR, PWR_CPUCR_SBF) == (PWR_CPUCR_SBF)) ? 1UL : 0UL);
02039 }
02040 
02041 #if defined (DUAL_CORE)
02042 /**
02043   * @brief  Get CPU2 System Standby Flag
02044   * @rmtoll CPU2CR   SBF       LL_PWR_CPU2_IsActiveFlag_SB
02045   * @retval State of bit (1 or 0).
02046   */
02047 __STATIC_INLINE uint32_t LL_PWR_CPU2_IsActiveFlag_SB(void)
02048 {
02049   return ((READ_BIT(PWR->CPU2CR, PWR_CPU2CR_SBF) == (PWR_CPU2CR_SBF)) ? 1UL : 0UL);
02050 }
02051 #endif /* DUAL_CORE */
02052 
02053 #if defined (PWR_CPUCR_SBF_D1)
02054 /**
02055   * @brief  Get CPU D1 Domain Standby Flag
02056   * @rmtoll CPUCR   SBF_D1       LL_PWR_CPU_IsActiveFlag_SB_D1
02057   * @retval State of bit (1 or 0).
02058   */
02059 __STATIC_INLINE uint32_t LL_PWR_CPU_IsActiveFlag_SB_D1(void)
02060 {
02061   return ((READ_BIT(PWR->CPUCR, PWR_CPUCR_SBF_D1) == (PWR_CPUCR_SBF_D1)) ? 1UL : 0UL);
02062 }
02063 #endif /* PWR_CPUCR_SBF_D1 */
02064 
02065 #if defined (DUAL_CORE)
02066 /**
02067   * @brief  Get CPU2 D1 Domain Standby Flag
02068   * @rmtoll CPU2CR   SBF_D1       LL_PWR_CPU2_IsActiveFlag_SB_D1
02069   * @retval State of bit (1 or 0).
02070   */
02071 __STATIC_INLINE uint32_t LL_PWR_CPU2_IsActiveFlag_SB_D1(void)
02072 {
02073   return ((READ_BIT(PWR->CPU2CR, PWR_CPU2CR_SBF_D1) == (PWR_CPU2CR_SBF_D1)) ? 1UL : 0UL);
02074 }
02075 #endif /* DUAL_CORE */
02076 
02077 #if defined (PWR_CPUCR_SBF_D2)
02078 /**
02079   * @brief  Get CPU D2 Domain Standby Flag
02080   * @rmtoll CPUCR   SBF_D2       LL_PWR_CPU_IsActiveFlag_SB_D2
02081   * @retval State of bit (1 or 0).
02082   */
02083 __STATIC_INLINE uint32_t LL_PWR_CPU_IsActiveFlag_SB_D2(void)
02084 {
02085   return ((READ_BIT(PWR->CPUCR, PWR_CPUCR_SBF_D2) == (PWR_CPUCR_SBF_D2)) ? 1UL : 0UL);
02086 }
02087 #endif /* PWR_CPUCR_SBF_D2 */
02088 
02089 #if defined (DUAL_CORE)
02090 /**
02091   * @brief  Get CPU2 D2 Domain Standby Flag
02092   * @rmtoll CPU2CR   SBF_D2       LL_PWR_CPU2_IsActiveFlag_SB_D2
02093   * @retval State of bit (1 or 0).
02094   */
02095 __STATIC_INLINE uint32_t LL_PWR_CPU2_IsActiveFlag_SB_D2(void)
02096 {
02097   return ((READ_BIT(PWR->CPU2CR, PWR_CPU2CR_SBF_D2) == (PWR_CPU2CR_SBF_D2)) ? 1UL : 0UL);
02098 }
02099 #endif /* DUAL_CORE */
02100 
02101 
02102 /**
02103   * @brief  Indicate whether the Regulator is ready in the selected voltage range
02104   *         or if its output voltage is still changing to the required voltage level
02105   * @rmtoll D3CR   VOSRDY       LL_PWR_IsActiveFlag_VOS
02106   * @retval State of bit (1 or 0).
02107   */
02108 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_VOS(void)
02109 {
02110 #if defined (PWR_CPUCR_PDDS_D2)
02111   return ((READ_BIT(PWR->D3CR, PWR_D3CR_VOSRDY) == (PWR_D3CR_VOSRDY)) ? 1UL : 0UL);
02112 #else
02113   return ((READ_BIT(PWR->SRDCR, PWR_SRDCR_VOSRDY) == (PWR_SRDCR_VOSRDY)) ? 1UL : 0UL);
02114 #endif /* PWR_CPUCR_PDDS_D2 */
02115 }
02116 
02117 /**
02118   * @brief  Get Wake-up Flag 6
02119   * @rmtoll WKUPFR          WKUPF6          LL_PWR_IsActiveFlag_WU6
02120   * @retval State of bit (1 or 0).
02121   */
02122 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU6(void)
02123 {
02124   return ((READ_BIT(PWR->WKUPFR, PWR_WKUPFR_WKUPF6) == (PWR_WKUPFR_WKUPF6)) ? 1UL : 0UL);
02125 }
02126 
02127 #if defined (PWR_WKUPFR_WKUPF5)
02128 /**
02129   * @brief  Get Wake-up Flag 5
02130   * @rmtoll WKUPFR          WKUPF5          LL_PWR_IsActiveFlag_WU5
02131   * @retval State of bit (1 or 0).
02132   */
02133 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU5(void)
02134 {
02135   return ((READ_BIT(PWR->WKUPFR, PWR_WKUPFR_WKUPF5) == (PWR_WKUPFR_WKUPF5)) ? 1UL : 0UL);
02136 }
02137 #endif /* defined (PWR_WKUPFR_WKUPF5) */
02138 
02139 /**
02140   * @brief  Get Wake-up Flag 4
02141   * @rmtoll WKUPFR          WKUPF4          LL_PWR_IsActiveFlag_WU4
02142   * @retval State of bit (1 or 0).
02143   */
02144 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU4(void)
02145 {
02146   return ((READ_BIT(PWR->WKUPFR, PWR_WKUPFR_WKUPF4) == (PWR_WKUPFR_WKUPF4)) ? 1UL : 0UL);
02147 }
02148 
02149 #if defined (PWR_WKUPFR_WKUPF3)
02150 /**
02151   * @brief  Get Wake-up Flag 3
02152   * @rmtoll WKUPFR          WKUPF3          LL_PWR_IsActiveFlag_WU3
02153   * @retval State of bit (1 or 0).
02154   */
02155 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU3(void)
02156 {
02157   return ((READ_BIT(PWR->WKUPFR, PWR_WKUPFR_WKUPF3) == (PWR_WKUPFR_WKUPF3)) ? 1UL : 0UL);
02158 }
02159 #endif /* defined (PWR_WKUPFR_WKUPF3) */
02160 
02161 /**
02162   * @brief  Get Wake-up Flag 2
02163   * @rmtoll WKUPFR          WKUPF2          LL_PWR_IsActiveFlag_WU2
02164   * @retval State of bit (1 or 0).
02165   */
02166 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU2(void)
02167 {
02168   return ((READ_BIT(PWR->WKUPFR, PWR_WKUPFR_WKUPF2) == (PWR_WKUPFR_WKUPF2)) ? 1UL : 0UL);
02169 }
02170 
02171 /**
02172   * @brief  Get Wake-up Flag 1
02173   * @rmtoll WKUPFR          WKUPF1          LL_PWR_IsActiveFlag_WU1
02174   * @retval State of bit (1 or 0).
02175   */
02176 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU1(void)
02177 {
02178   return ((READ_BIT(PWR->WKUPFR, PWR_WKUPFR_WKUPF1) == (PWR_WKUPFR_WKUPF1)) ? 1UL : 0UL);
02179 }
02180 
02181 /**
02182   * @brief  Clear CPU STANDBY, STOP and HOLD flags
02183   * @rmtoll CPUCR   CSSF       LL_PWR_ClearFlag_CPU
02184   * @retval None
02185   */
02186 __STATIC_INLINE void LL_PWR_ClearFlag_CPU(void)
02187 {
02188   SET_BIT(PWR->CPUCR, PWR_CPUCR_CSSF);
02189 }
02190 
02191 #if defined (DUAL_CORE)
02192 /**
02193   * @brief  Clear CPU2 STANDBY, STOP and HOLD flags
02194   * @rmtoll CPU2CR   CSSF       LL_PWR_ClearFlag_CPU2
02195   * @retval None
02196   */
02197 __STATIC_INLINE void LL_PWR_ClearFlag_CPU2(void)
02198 {
02199   SET_BIT(PWR->CPU2CR, PWR_CPU2CR_CSSF);
02200 }
02201 #endif /* DUAL_CORE */
02202 
02203 /**
02204   * @brief  Clear Wake-up Flag 6
02205   * @rmtoll WKUPCR          WKUPC6         LL_PWR_ClearFlag_WU6
02206   * @retval None
02207   */
02208 __STATIC_INLINE void LL_PWR_ClearFlag_WU6(void)
02209 {
02210   WRITE_REG(PWR->WKUPCR, PWR_WKUPCR_WKUPC6);
02211 }
02212 
02213 #if defined (PWR_WKUPCR_WKUPC5)
02214 /**
02215   * @brief  Clear Wake-up Flag 5
02216   * @rmtoll WKUPCR          WKUPC5         LL_PWR_ClearFlag_WU5
02217   * @retval None
02218   */
02219 __STATIC_INLINE void LL_PWR_ClearFlag_WU5(void)
02220 {
02221   WRITE_REG(PWR->WKUPCR, PWR_WKUPCR_WKUPC5);
02222 }
02223 #endif /* defined (PWR_WKUPCR_WKUPC5) */
02224 
02225 /**
02226   * @brief  Clear Wake-up Flag 4
02227   * @rmtoll WKUPCR          WKUPC4         LL_PWR_ClearFlag_WU4
02228   * @retval None
02229   */
02230 __STATIC_INLINE void LL_PWR_ClearFlag_WU4(void)
02231 {
02232   WRITE_REG(PWR->WKUPCR, PWR_WKUPCR_WKUPC4);
02233 }
02234 
02235 #if defined (PWR_WKUPCR_WKUPC3)
02236 /**
02237   * @brief  Clear Wake-up Flag 3
02238   * @rmtoll WKUPCR          WKUPC3         LL_PWR_ClearFlag_WU3
02239   * @retval None
02240   */
02241 __STATIC_INLINE void LL_PWR_ClearFlag_WU3(void)
02242 {
02243   WRITE_REG(PWR->WKUPCR, PWR_WKUPCR_WKUPC3);
02244 }
02245 #endif /* defined (PWR_WKUPCR_WKUPC3) */
02246 
02247 /**
02248   * @brief  Clear Wake-up Flag 2
02249   * @rmtoll WKUPCR          WKUPC2         LL_PWR_ClearFlag_WU2
02250   * @retval None
02251   */
02252 __STATIC_INLINE void LL_PWR_ClearFlag_WU2(void)
02253 {
02254   WRITE_REG(PWR->WKUPCR, PWR_WKUPCR_WKUPC2);
02255 }
02256 
02257 /**
02258   * @brief  Clear Wake-up Flag 1
02259   * @rmtoll WKUPCR          WKUPC1         LL_PWR_ClearFlag_WU1
02260   * @retval None
02261   */
02262 __STATIC_INLINE void LL_PWR_ClearFlag_WU1(void)
02263 {
02264   WRITE_REG(PWR->WKUPCR, PWR_WKUPCR_WKUPC1);
02265 }
02266 
02267 #if defined (USE_FULL_LL_DRIVER)
02268 /** @defgroup PWR_LL_EF_Init De-initialization function
02269   * @{
02270   */
02271 ErrorStatus LL_PWR_DeInit(void);
02272 /**
02273   * @}
02274   */
02275 #endif /* defined (USE_FULL_LL_DRIVER) */
02276 
02277 
02278 /**
02279   * @}
02280   */
02281 
02282 /**
02283   * @}
02284   */
02285 
02286 /**
02287   * @}
02288   */
02289 
02290 #endif /* defined (PWR) */
02291 
02292 /**
02293   * @}
02294   */
02295 
02296 #ifdef __cplusplus
02297 }
02298 #endif
02299 
02300 #endif /* STM32H7xx_LL_PWR_H */
02301