STM32L443xx HAL User Manual
|
00001 /** 00002 ****************************************************************************** 00003 * @file stm32l4xx_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 STM32L4xx_LL_PWR_H 00021 #define STM32L4xx_LL_PWR_H 00022 00023 #ifdef __cplusplus 00024 extern "C" { 00025 #endif 00026 00027 /* Includes ------------------------------------------------------------------*/ 00028 #include "stm32l4xx.h" 00029 00030 /** @addtogroup STM32L4xx_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 00043 /* Private constants ---------------------------------------------------------*/ 00044 00045 /* Private macros ------------------------------------------------------------*/ 00046 00047 /* Exported types ------------------------------------------------------------*/ 00048 /* Exported constants --------------------------------------------------------*/ 00049 /** @defgroup PWR_LL_Exported_Constants PWR Exported Constants 00050 * @{ 00051 */ 00052 00053 /** @defgroup PWR_LL_EC_CLEAR_FLAG Clear Flags Defines 00054 * @brief Flags defines which can be used with LL_PWR_WriteReg function 00055 * @{ 00056 */ 00057 #define LL_PWR_SCR_CSBF PWR_SCR_CSBF 00058 #define LL_PWR_SCR_CWUF PWR_SCR_CWUF 00059 #define LL_PWR_SCR_CWUF5 PWR_SCR_CWUF5 00060 #define LL_PWR_SCR_CWUF4 PWR_SCR_CWUF4 00061 #define LL_PWR_SCR_CWUF3 PWR_SCR_CWUF3 00062 #define LL_PWR_SCR_CWUF2 PWR_SCR_CWUF2 00063 #define LL_PWR_SCR_CWUF1 PWR_SCR_CWUF1 00064 /** 00065 * @} 00066 */ 00067 00068 /** @defgroup PWR_LL_EC_GET_FLAG Get Flags Defines 00069 * @brief Flags defines which can be used with LL_PWR_ReadReg function 00070 * @{ 00071 */ 00072 #define LL_PWR_SR1_WUFI PWR_SR1_WUFI 00073 #if defined(PWR_SR1_EXT_SMPS_RDY) 00074 #define LL_PWR_SR1_EXT_SMPS_RDY PWR_SR1_EXT_SMPS_RDY 00075 #endif /* PWR_SR1_EXT_SMPS_RDY */ 00076 #define LL_PWR_SR1_SBF PWR_SR1_SBF 00077 #define LL_PWR_SR1_WUF5 PWR_SR1_WUF5 00078 #define LL_PWR_SR1_WUF4 PWR_SR1_WUF4 00079 #define LL_PWR_SR1_WUF3 PWR_SR1_WUF3 00080 #define LL_PWR_SR1_WUF2 PWR_SR1_WUF2 00081 #define LL_PWR_SR1_WUF1 PWR_SR1_WUF1 00082 #if defined(PWR_SR2_PVMO4) 00083 #define LL_PWR_SR2_PVMO4 PWR_SR2_PVMO4 00084 #endif /* PWR_SR2_PVMO4 */ 00085 #if defined(PWR_SR2_PVMO3) 00086 #define LL_PWR_SR2_PVMO3 PWR_SR2_PVMO3 00087 #endif /* PWR_SR2_PVMO3 */ 00088 #if defined(PWR_SR2_PVMO2) 00089 #define LL_PWR_SR2_PVMO2 PWR_SR2_PVMO2 00090 #endif /* PWR_SR2_PVMO2 */ 00091 #if defined(PWR_SR2_PVMO1) 00092 #define LL_PWR_SR2_PVMO1 PWR_SR2_PVMO1 00093 #endif /* PWR_SR2_PVMO1 */ 00094 #define LL_PWR_SR2_PVDO PWR_SR2_PVDO 00095 #define LL_PWR_SR2_VOSF PWR_SR2_VOSF 00096 #define LL_PWR_SR2_REGLPF PWR_SR2_REGLPF 00097 #define LL_PWR_SR2_REGLPS PWR_SR2_REGLPS 00098 /** 00099 * @} 00100 */ 00101 00102 /** @defgroup PWR_LL_EC_REGU_VOLTAGE REGU VOLTAGE 00103 * @{ 00104 */ 00105 #define LL_PWR_REGU_VOLTAGE_SCALE1 (PWR_CR1_VOS_0) 00106 #define LL_PWR_REGU_VOLTAGE_SCALE2 (PWR_CR1_VOS_1) 00107 /** 00108 * @} 00109 */ 00110 00111 /** @defgroup PWR_LL_EC_MODE_PWR MODE PWR 00112 * @{ 00113 */ 00114 #define LL_PWR_MODE_STOP0 (PWR_CR1_LPMS_STOP0) 00115 #define LL_PWR_MODE_STOP1 (PWR_CR1_LPMS_STOP1) 00116 #define LL_PWR_MODE_STOP2 (PWR_CR1_LPMS_STOP2) 00117 #define LL_PWR_MODE_STANDBY (PWR_CR1_LPMS_STANDBY) 00118 #define LL_PWR_MODE_SHUTDOWN (PWR_CR1_LPMS_SHUTDOWN) 00119 /** 00120 * @} 00121 */ 00122 00123 /** @defgroup PWR_LL_EC_PVM_VDDUSB_1 Peripheral voltage monitoring 00124 * @{ 00125 */ 00126 #if defined(PWR_CR2_PVME1) 00127 #define LL_PWR_PVM_VDDUSB_1_2V (PWR_CR2_PVME1) /* Monitoring VDDUSB vs. 1.2V */ 00128 #endif 00129 #if defined(PWR_CR2_PVME2) 00130 #define LL_PWR_PVM_VDDIO2_0_9V (PWR_CR2_PVME2) /* Monitoring VDDIO2 vs. 0.9V */ 00131 #endif 00132 #if defined(PWR_CR2_PVME3) 00133 #define LL_PWR_PVM_VDDA_1_62V (PWR_CR2_PVME3) /* Monitoring VDDA vs. 1.62V */ 00134 #endif 00135 #if defined(PWR_CR2_PVME4) 00136 #define LL_PWR_PVM_VDDA_2_2V (PWR_CR2_PVME4) /* Monitoring VDDA vs. 2.2V */ 00137 #endif 00138 /** 00139 * @} 00140 */ 00141 00142 /** @defgroup PWR_LL_EC_PVDLEVEL PVDLEVEL 00143 * @{ 00144 */ 00145 #define LL_PWR_PVDLEVEL_0 (PWR_CR2_PLS_LEV0) /* VPVD0 around 2.0 V */ 00146 #define LL_PWR_PVDLEVEL_1 (PWR_CR2_PLS_LEV1) /* VPVD1 around 2.2 V */ 00147 #define LL_PWR_PVDLEVEL_2 (PWR_CR2_PLS_LEV2) /* VPVD2 around 2.4 V */ 00148 #define LL_PWR_PVDLEVEL_3 (PWR_CR2_PLS_LEV3) /* VPVD3 around 2.5 V */ 00149 #define LL_PWR_PVDLEVEL_4 (PWR_CR2_PLS_LEV4) /* VPVD4 around 2.6 V */ 00150 #define LL_PWR_PVDLEVEL_5 (PWR_CR2_PLS_LEV5) /* VPVD5 around 2.8 V */ 00151 #define LL_PWR_PVDLEVEL_6 (PWR_CR2_PLS_LEV6) /* VPVD6 around 2.9 V */ 00152 #define LL_PWR_PVDLEVEL_7 (PWR_CR2_PLS_LEV7) /* External input analog voltage (Compare internally to VREFINT) */ 00153 /** 00154 * @} 00155 */ 00156 00157 /** @defgroup PWR_LL_EC_WAKEUP WAKEUP 00158 * @{ 00159 */ 00160 #define LL_PWR_WAKEUP_PIN1 (PWR_CR3_EWUP1) 00161 #define LL_PWR_WAKEUP_PIN2 (PWR_CR3_EWUP2) 00162 #define LL_PWR_WAKEUP_PIN3 (PWR_CR3_EWUP3) 00163 #define LL_PWR_WAKEUP_PIN4 (PWR_CR3_EWUP4) 00164 #define LL_PWR_WAKEUP_PIN5 (PWR_CR3_EWUP5) 00165 /** 00166 * @} 00167 */ 00168 00169 /** @defgroup PWR_LL_EC_BATT_CHARG_RESISTOR BATT CHARG RESISTOR 00170 * @{ 00171 */ 00172 #define LL_PWR_BATT_CHARG_RESISTOR_5K (0x00000000U) 00173 #define LL_PWR_BATT_CHARGRESISTOR_1_5K (PWR_CR4_VBRS) 00174 /** 00175 * @} 00176 */ 00177 00178 /** @defgroup PWR_LL_EC_SRAM2_CONTENT_RETENTION SRAM2 CONTENT RETENTION 00179 * @{ 00180 */ 00181 #define LL_PWR_NO_SRAM2_RETENTION (0x00000000U) 00182 #if defined(PWR_CR3_RRS_1) 00183 #define LL_PWR_FULL_SRAM2_RETENTION PWR_CR3_RRS_0 00184 #define LL_PWR_4KBYTES_SRAM2_RETENTION PWR_CR3_RRS_1 00185 #else 00186 #define LL_PWR_FULL_SRAM2_RETENTION PWR_CR3_RRS 00187 #endif /* PWR_CR3_RRS_1 */ 00188 /** 00189 * @} 00190 */ 00191 00192 /** @defgroup PWR_LL_EC_GPIO GPIO 00193 * @{ 00194 */ 00195 #define LL_PWR_GPIO_A ((uint32_t)(&(PWR->PUCRA))) 00196 #define LL_PWR_GPIO_B ((uint32_t)(&(PWR->PUCRB))) 00197 #define LL_PWR_GPIO_C ((uint32_t)(&(PWR->PUCRC))) 00198 #define LL_PWR_GPIO_D ((uint32_t)(&(PWR->PUCRD))) 00199 #define LL_PWR_GPIO_E ((uint32_t)(&(PWR->PUCRE))) 00200 #if defined(GPIOF) 00201 #define LL_PWR_GPIO_F ((uint32_t)(&(PWR->PUCRF))) 00202 #endif 00203 #if defined(GPIOG) 00204 #define LL_PWR_GPIO_G ((uint32_t)(&(PWR->PUCRG))) 00205 #endif 00206 #if defined(GPIOH) 00207 #define LL_PWR_GPIO_H ((uint32_t)(&(PWR->PUCRH))) 00208 #endif 00209 #if defined(GPIOI) 00210 #define LL_PWR_GPIO_I ((uint32_t)(&(PWR->PUCRI))) 00211 #endif 00212 /** 00213 * @} 00214 */ 00215 00216 /** @defgroup PWR_LL_EC_GPIO_BIT GPIO BIT 00217 * @{ 00218 */ 00219 #define LL_PWR_GPIO_BIT_0 (0x00000001U) 00220 #define LL_PWR_GPIO_BIT_1 (0x00000002U) 00221 #define LL_PWR_GPIO_BIT_2 (0x00000004U) 00222 #define LL_PWR_GPIO_BIT_3 (0x00000008U) 00223 #define LL_PWR_GPIO_BIT_4 (0x00000010U) 00224 #define LL_PWR_GPIO_BIT_5 (0x00000020U) 00225 #define LL_PWR_GPIO_BIT_6 (0x00000040U) 00226 #define LL_PWR_GPIO_BIT_7 (0x00000080U) 00227 #define LL_PWR_GPIO_BIT_8 (0x00000100U) 00228 #define LL_PWR_GPIO_BIT_9 (0x00000200U) 00229 #define LL_PWR_GPIO_BIT_10 (0x00000400U) 00230 #define LL_PWR_GPIO_BIT_11 (0x00000800U) 00231 #define LL_PWR_GPIO_BIT_12 (0x00001000U) 00232 #define LL_PWR_GPIO_BIT_13 (0x00002000U) 00233 #define LL_PWR_GPIO_BIT_14 (0x00004000U) 00234 #define LL_PWR_GPIO_BIT_15 (0x00008000U) 00235 /** 00236 * @} 00237 */ 00238 00239 /** 00240 * @} 00241 */ 00242 00243 /* Exported macro ------------------------------------------------------------*/ 00244 /** @defgroup PWR_LL_Exported_Macros PWR Exported Macros 00245 * @{ 00246 */ 00247 00248 /** @defgroup PWR_LL_EM_WRITE_READ Common Write and read registers Macros 00249 * @{ 00250 */ 00251 00252 /** 00253 * @brief Write a value in PWR register 00254 * @param __REG__ Register to be written 00255 * @param __VALUE__ Value to be written in the register 00256 * @retval None 00257 */ 00258 #define LL_PWR_WriteReg(__REG__, __VALUE__) WRITE_REG(PWR->__REG__, (__VALUE__)) 00259 00260 /** 00261 * @brief Read a value in PWR register 00262 * @param __REG__ Register to be read 00263 * @retval Register value 00264 */ 00265 #define LL_PWR_ReadReg(__REG__) READ_REG(PWR->__REG__) 00266 /** 00267 * @} 00268 */ 00269 00270 /** 00271 * @} 00272 */ 00273 00274 00275 /* Exported functions --------------------------------------------------------*/ 00276 /** @defgroup PWR_LL_Exported_Functions PWR Exported Functions 00277 * @{ 00278 */ 00279 00280 /** @defgroup PWR_LL_EF_Configuration Configuration 00281 * @{ 00282 */ 00283 00284 /** 00285 * @brief Switch the regulator from main mode to low-power mode 00286 * @rmtoll CR1 LPR LL_PWR_EnableLowPowerRunMode 00287 * @retval None 00288 */ 00289 __STATIC_INLINE void LL_PWR_EnableLowPowerRunMode(void) 00290 { 00291 SET_BIT(PWR->CR1, PWR_CR1_LPR); 00292 } 00293 00294 /** 00295 * @brief Switch the regulator from low-power mode to main mode 00296 * @rmtoll CR1 LPR LL_PWR_DisableLowPowerRunMode 00297 * @retval None 00298 */ 00299 __STATIC_INLINE void LL_PWR_DisableLowPowerRunMode(void) 00300 { 00301 CLEAR_BIT(PWR->CR1, PWR_CR1_LPR); 00302 } 00303 00304 /** 00305 * @brief Switch from run main mode to run low-power mode. 00306 * @rmtoll CR1 LPR LL_PWR_EnterLowPowerRunMode 00307 * @retval None 00308 */ 00309 __STATIC_INLINE void LL_PWR_EnterLowPowerRunMode(void) 00310 { 00311 LL_PWR_EnableLowPowerRunMode(); 00312 } 00313 00314 /** 00315 * @brief Switch from run main mode to low-power mode. 00316 * @rmtoll CR1 LPR LL_PWR_ExitLowPowerRunMode 00317 * @retval None 00318 */ 00319 __STATIC_INLINE void LL_PWR_ExitLowPowerRunMode(void) 00320 { 00321 LL_PWR_DisableLowPowerRunMode(); 00322 } 00323 00324 /** 00325 * @brief Check if the regulator is in low-power mode 00326 * @rmtoll CR1 LPR LL_PWR_IsEnabledLowPowerRunMode 00327 * @retval State of bit (1 or 0). 00328 */ 00329 __STATIC_INLINE uint32_t LL_PWR_IsEnabledLowPowerRunMode(void) 00330 { 00331 return ((READ_BIT(PWR->CR1, PWR_CR1_LPR) == (PWR_CR1_LPR)) ? 1UL : 0UL); 00332 } 00333 00334 /** 00335 * @brief Set the main internal regulator output voltage 00336 * @note This configuration may be completed with LL_PWR_EnableRange1BoostMode() on STM32L4Rx/STM32L4Sx devices. 00337 * @rmtoll CR1 VOS LL_PWR_SetRegulVoltageScaling 00338 * @param VoltageScaling This parameter can be one of the following values: 00339 * @arg @ref LL_PWR_REGU_VOLTAGE_SCALE1 00340 * @arg @ref LL_PWR_REGU_VOLTAGE_SCALE2 00341 * @retval None 00342 */ 00343 __STATIC_INLINE void LL_PWR_SetRegulVoltageScaling(uint32_t VoltageScaling) 00344 { 00345 MODIFY_REG(PWR->CR1, PWR_CR1_VOS, VoltageScaling); 00346 } 00347 00348 /** 00349 * @brief Get the main internal regulator output voltage 00350 * @rmtoll CR1 VOS LL_PWR_GetRegulVoltageScaling 00351 * @retval Returned value can be one of the following values: 00352 * @arg @ref LL_PWR_REGU_VOLTAGE_SCALE1 00353 * @arg @ref LL_PWR_REGU_VOLTAGE_SCALE2 00354 */ 00355 __STATIC_INLINE uint32_t LL_PWR_GetRegulVoltageScaling(void) 00356 { 00357 return (uint32_t)(READ_BIT(PWR->CR1, PWR_CR1_VOS)); 00358 } 00359 00360 #if defined(PWR_CR5_R1MODE) 00361 /** 00362 * @brief Enable main regulator voltage range 1 boost mode 00363 * @rmtoll CR5 R1MODE LL_PWR_EnableRange1BoostMode 00364 * @retval None 00365 */ 00366 __STATIC_INLINE void LL_PWR_EnableRange1BoostMode(void) 00367 { 00368 CLEAR_BIT(PWR->CR5, PWR_CR5_R1MODE); 00369 } 00370 00371 /** 00372 * @brief Disable main regulator voltage range 1 boost mode 00373 * @rmtoll CR5 R1MODE LL_PWR_DisableRange1BoostMode 00374 * @retval None 00375 */ 00376 __STATIC_INLINE void LL_PWR_DisableRange1BoostMode(void) 00377 { 00378 SET_BIT(PWR->CR5, PWR_CR5_R1MODE); 00379 } 00380 00381 /** 00382 * @brief Check if the main regulator voltage range 1 boost mode is enabled 00383 * @rmtoll CR5 R1MODE LL_PWR_IsEnabledRange1BoostMode 00384 * @retval Inverted state of bit (0 or 1). 00385 */ 00386 __STATIC_INLINE uint32_t LL_PWR_IsEnabledRange1BoostMode(void) 00387 { 00388 return ((READ_BIT(PWR->CR5, PWR_CR5_R1MODE) == 0x0U) ? 1UL : 0UL); 00389 } 00390 #endif /* PWR_CR5_R1MODE */ 00391 00392 /** 00393 * @brief Enable access to the backup domain 00394 * @rmtoll CR1 DBP LL_PWR_EnableBkUpAccess 00395 * @retval None 00396 */ 00397 __STATIC_INLINE void LL_PWR_EnableBkUpAccess(void) 00398 { 00399 SET_BIT(PWR->CR1, PWR_CR1_DBP); 00400 } 00401 00402 /** 00403 * @brief Disable access to the backup domain 00404 * @rmtoll CR1 DBP LL_PWR_DisableBkUpAccess 00405 * @retval None 00406 */ 00407 __STATIC_INLINE void LL_PWR_DisableBkUpAccess(void) 00408 { 00409 CLEAR_BIT(PWR->CR1, PWR_CR1_DBP); 00410 } 00411 00412 /** 00413 * @brief Check if the backup domain is enabled 00414 * @rmtoll CR1 DBP LL_PWR_IsEnabledBkUpAccess 00415 * @retval State of bit (1 or 0). 00416 */ 00417 __STATIC_INLINE uint32_t LL_PWR_IsEnabledBkUpAccess(void) 00418 { 00419 return ((READ_BIT(PWR->CR1, PWR_CR1_DBP) == (PWR_CR1_DBP)) ? 1UL : 0UL); 00420 } 00421 00422 /** 00423 * @brief Set Low-Power mode 00424 * @rmtoll CR1 LPMS LL_PWR_SetPowerMode 00425 * @param LowPowerMode This parameter can be one of the following values: 00426 * @arg @ref LL_PWR_MODE_STOP0 00427 * @arg @ref LL_PWR_MODE_STOP1 00428 * @arg @ref LL_PWR_MODE_STOP2 00429 * @arg @ref LL_PWR_MODE_STANDBY 00430 * @arg @ref LL_PWR_MODE_SHUTDOWN 00431 * @retval None 00432 */ 00433 __STATIC_INLINE void LL_PWR_SetPowerMode(uint32_t LowPowerMode) 00434 { 00435 MODIFY_REG(PWR->CR1, PWR_CR1_LPMS, LowPowerMode); 00436 } 00437 00438 /** 00439 * @brief Get Low-Power mode 00440 * @rmtoll CR1 LPMS LL_PWR_GetPowerMode 00441 * @retval Returned value can be one of the following values: 00442 * @arg @ref LL_PWR_MODE_STOP0 00443 * @arg @ref LL_PWR_MODE_STOP1 00444 * @arg @ref LL_PWR_MODE_STOP2 00445 * @arg @ref LL_PWR_MODE_STANDBY 00446 * @arg @ref LL_PWR_MODE_SHUTDOWN 00447 */ 00448 __STATIC_INLINE uint32_t LL_PWR_GetPowerMode(void) 00449 { 00450 return (uint32_t)(READ_BIT(PWR->CR1, PWR_CR1_LPMS)); 00451 } 00452 00453 #if defined(PWR_CR1_RRSTP) 00454 /** 00455 * @brief Enable SRAM3 content retention in Stop mode 00456 * @rmtoll CR1 RRSTP LL_PWR_EnableSRAM3Retention 00457 * @retval None 00458 */ 00459 __STATIC_INLINE void LL_PWR_EnableSRAM3Retention(void) 00460 { 00461 SET_BIT(PWR->CR1, PWR_CR1_RRSTP); 00462 } 00463 00464 /** 00465 * @brief Disable SRAM3 content retention in Stop mode 00466 * @rmtoll CR1 RRSTP LL_PWR_DisableSRAM3Retention 00467 * @retval None 00468 */ 00469 __STATIC_INLINE void LL_PWR_DisableSRAM3Retention(void) 00470 { 00471 CLEAR_BIT(PWR->CR1, PWR_CR1_RRSTP); 00472 } 00473 00474 /** 00475 * @brief Check if SRAM3 content retention in Stop mode is enabled 00476 * @rmtoll CR1 RRSTP LL_PWR_IsEnabledSRAM3Retention 00477 * @retval State of bit (1 or 0). 00478 */ 00479 __STATIC_INLINE uint32_t LL_PWR_IsEnabledSRAM3Retention(void) 00480 { 00481 return ((READ_BIT(PWR->CR1, PWR_CR1_RRSTP) == (PWR_CR1_RRSTP)) ? 1UL : 0UL); 00482 } 00483 #endif /* PWR_CR1_RRSTP */ 00484 00485 #if defined(PWR_CR3_DSIPDEN) 00486 /** 00487 * @brief Enable pull-down activation on DSI pins 00488 * @rmtoll CR3 DSIPDEN LL_PWR_EnableDSIPinsPDActivation 00489 * @retval None 00490 */ 00491 __STATIC_INLINE void LL_PWR_EnableDSIPinsPDActivation(void) 00492 { 00493 SET_BIT(PWR->CR3, PWR_CR3_DSIPDEN); 00494 } 00495 00496 /** 00497 * @brief Disable pull-down activation on DSI pins 00498 * @rmtoll CR3 DSIPDEN LL_PWR_DisableDSIPinsPDActivation 00499 * @retval None 00500 */ 00501 __STATIC_INLINE void LL_PWR_DisableDSIPinsPDActivation(void) 00502 { 00503 CLEAR_BIT(PWR->CR3, PWR_CR3_DSIPDEN); 00504 } 00505 00506 /** 00507 * @brief Check if pull-down activation on DSI pins is enabled 00508 * @rmtoll CR3 DSIPDEN LL_PWR_IsEnabledDSIPinsPDActivation 00509 * @retval State of bit (1 or 0). 00510 */ 00511 __STATIC_INLINE uint32_t LL_PWR_IsEnabledDSIPinsPDActivation(void) 00512 { 00513 return ((READ_BIT(PWR->CR3, PWR_CR3_DSIPDEN) == (PWR_CR3_DSIPDEN)) ? 1UL : 0UL); 00514 } 00515 #endif /* PWR_CR3_DSIPDEN */ 00516 00517 #if defined(PWR_CR2_USV) 00518 /** 00519 * @brief Enable VDDUSB supply 00520 * @rmtoll CR2 USV LL_PWR_EnableVddUSB 00521 * @retval None 00522 */ 00523 __STATIC_INLINE void LL_PWR_EnableVddUSB(void) 00524 { 00525 SET_BIT(PWR->CR2, PWR_CR2_USV); 00526 } 00527 00528 /** 00529 * @brief Disable VDDUSB supply 00530 * @rmtoll CR2 USV LL_PWR_DisableVddUSB 00531 * @retval None 00532 */ 00533 __STATIC_INLINE void LL_PWR_DisableVddUSB(void) 00534 { 00535 CLEAR_BIT(PWR->CR2, PWR_CR2_USV); 00536 } 00537 00538 /** 00539 * @brief Check if VDDUSB supply is enabled 00540 * @rmtoll CR2 USV LL_PWR_IsEnabledVddUSB 00541 * @retval State of bit (1 or 0). 00542 */ 00543 __STATIC_INLINE uint32_t LL_PWR_IsEnabledVddUSB(void) 00544 { 00545 return ((READ_BIT(PWR->CR2, PWR_CR2_USV) == (PWR_CR2_USV)) ? 1UL : 0UL); 00546 } 00547 #endif 00548 00549 #if defined(PWR_CR2_IOSV) 00550 /** 00551 * @brief Enable VDDIO2 supply 00552 * @rmtoll CR2 IOSV LL_PWR_EnableVddIO2 00553 * @retval None 00554 */ 00555 __STATIC_INLINE void LL_PWR_EnableVddIO2(void) 00556 { 00557 SET_BIT(PWR->CR2, PWR_CR2_IOSV); 00558 } 00559 00560 /** 00561 * @brief Disable VDDIO2 supply 00562 * @rmtoll CR2 IOSV LL_PWR_DisableVddIO2 00563 * @retval None 00564 */ 00565 __STATIC_INLINE void LL_PWR_DisableVddIO2(void) 00566 { 00567 CLEAR_BIT(PWR->CR2, PWR_CR2_IOSV); 00568 } 00569 00570 /** 00571 * @brief Check if VDDIO2 supply is enabled 00572 * @rmtoll CR2 IOSV LL_PWR_IsEnabledVddIO2 00573 * @retval State of bit (1 or 0). 00574 */ 00575 __STATIC_INLINE uint32_t LL_PWR_IsEnabledVddIO2(void) 00576 { 00577 return ((READ_BIT(PWR->CR2, PWR_CR2_IOSV) == (PWR_CR2_IOSV)) ? 1UL : 0UL); 00578 } 00579 #endif 00580 00581 /** 00582 * @brief Enable the Power Voltage Monitoring on a peripheral 00583 * @rmtoll CR2 PVME1 LL_PWR_EnablePVM\n 00584 * CR2 PVME2 LL_PWR_EnablePVM\n 00585 * CR2 PVME3 LL_PWR_EnablePVM\n 00586 * CR2 PVME4 LL_PWR_EnablePVM 00587 * @param PeriphVoltage This parameter can be one of the following values: 00588 * @arg @ref LL_PWR_PVM_VDDUSB_1_2V (*) 00589 * @arg @ref LL_PWR_PVM_VDDIO2_0_9V (*) 00590 * @arg @ref LL_PWR_PVM_VDDA_1_62V 00591 * @arg @ref LL_PWR_PVM_VDDA_2_2V 00592 * 00593 * (*) value not defined in all devices 00594 * @retval None 00595 */ 00596 __STATIC_INLINE void LL_PWR_EnablePVM(uint32_t PeriphVoltage) 00597 { 00598 SET_BIT(PWR->CR2, PeriphVoltage); 00599 } 00600 00601 /** 00602 * @brief Disable the Power Voltage Monitoring on a peripheral 00603 * @rmtoll CR2 PVME1 LL_PWR_DisablePVM\n 00604 * CR2 PVME2 LL_PWR_DisablePVM\n 00605 * CR2 PVME3 LL_PWR_DisablePVM\n 00606 * CR2 PVME4 LL_PWR_DisablePVM 00607 * @param PeriphVoltage This parameter can be one of the following values: 00608 * @arg @ref LL_PWR_PVM_VDDUSB_1_2V (*) 00609 * @arg @ref LL_PWR_PVM_VDDIO2_0_9V (*) 00610 * @arg @ref LL_PWR_PVM_VDDA_1_62V 00611 * @arg @ref LL_PWR_PVM_VDDA_2_2V 00612 * 00613 * (*) value not defined in all devices 00614 * @retval None 00615 */ 00616 __STATIC_INLINE void LL_PWR_DisablePVM(uint32_t PeriphVoltage) 00617 { 00618 CLEAR_BIT(PWR->CR2, PeriphVoltage); 00619 } 00620 00621 /** 00622 * @brief Check if Power Voltage Monitoring is enabled on a peripheral 00623 * @rmtoll CR2 PVME1 LL_PWR_IsEnabledPVM\n 00624 * CR2 PVME2 LL_PWR_IsEnabledPVM\n 00625 * CR2 PVME3 LL_PWR_IsEnabledPVM\n 00626 * CR2 PVME4 LL_PWR_IsEnabledPVM 00627 * @param PeriphVoltage This parameter can be one of the following values: 00628 * @arg @ref LL_PWR_PVM_VDDUSB_1_2V (*) 00629 * @arg @ref LL_PWR_PVM_VDDIO2_0_9V (*) 00630 * @arg @ref LL_PWR_PVM_VDDA_1_62V 00631 * @arg @ref LL_PWR_PVM_VDDA_2_2V 00632 * 00633 * (*) value not defined in all devices 00634 * @retval State of bit (1 or 0). 00635 */ 00636 __STATIC_INLINE uint32_t LL_PWR_IsEnabledPVM(uint32_t PeriphVoltage) 00637 { 00638 return ((READ_BIT(PWR->CR2, PeriphVoltage) == (PeriphVoltage)) ? 1UL : 0UL); 00639 } 00640 00641 /** 00642 * @brief Configure the voltage threshold detected by the Power Voltage Detector 00643 * @rmtoll CR2 PLS LL_PWR_SetPVDLevel 00644 * @param PVDLevel This parameter can be one of the following values: 00645 * @arg @ref LL_PWR_PVDLEVEL_0 00646 * @arg @ref LL_PWR_PVDLEVEL_1 00647 * @arg @ref LL_PWR_PVDLEVEL_2 00648 * @arg @ref LL_PWR_PVDLEVEL_3 00649 * @arg @ref LL_PWR_PVDLEVEL_4 00650 * @arg @ref LL_PWR_PVDLEVEL_5 00651 * @arg @ref LL_PWR_PVDLEVEL_6 00652 * @arg @ref LL_PWR_PVDLEVEL_7 00653 * @retval None 00654 */ 00655 __STATIC_INLINE void LL_PWR_SetPVDLevel(uint32_t PVDLevel) 00656 { 00657 MODIFY_REG(PWR->CR2, PWR_CR2_PLS, PVDLevel); 00658 } 00659 00660 /** 00661 * @brief Get the voltage threshold detection 00662 * @rmtoll CR2 PLS LL_PWR_GetPVDLevel 00663 * @retval Returned value can be one of the following values: 00664 * @arg @ref LL_PWR_PVDLEVEL_0 00665 * @arg @ref LL_PWR_PVDLEVEL_1 00666 * @arg @ref LL_PWR_PVDLEVEL_2 00667 * @arg @ref LL_PWR_PVDLEVEL_3 00668 * @arg @ref LL_PWR_PVDLEVEL_4 00669 * @arg @ref LL_PWR_PVDLEVEL_5 00670 * @arg @ref LL_PWR_PVDLEVEL_6 00671 * @arg @ref LL_PWR_PVDLEVEL_7 00672 */ 00673 __STATIC_INLINE uint32_t LL_PWR_GetPVDLevel(void) 00674 { 00675 return (uint32_t)(READ_BIT(PWR->CR2, PWR_CR2_PLS)); 00676 } 00677 00678 /** 00679 * @brief Enable Power Voltage Detector 00680 * @rmtoll CR2 PVDE LL_PWR_EnablePVD 00681 * @retval None 00682 */ 00683 __STATIC_INLINE void LL_PWR_EnablePVD(void) 00684 { 00685 SET_BIT(PWR->CR2, PWR_CR2_PVDE); 00686 } 00687 00688 /** 00689 * @brief Disable Power Voltage Detector 00690 * @rmtoll CR2 PVDE LL_PWR_DisablePVD 00691 * @retval None 00692 */ 00693 __STATIC_INLINE void LL_PWR_DisablePVD(void) 00694 { 00695 CLEAR_BIT(PWR->CR2, PWR_CR2_PVDE); 00696 } 00697 00698 /** 00699 * @brief Check if Power Voltage Detector is enabled 00700 * @rmtoll CR2 PVDE LL_PWR_IsEnabledPVD 00701 * @retval State of bit (1 or 0). 00702 */ 00703 __STATIC_INLINE uint32_t LL_PWR_IsEnabledPVD(void) 00704 { 00705 return ((READ_BIT(PWR->CR2, PWR_CR2_PVDE) == (PWR_CR2_PVDE)) ? 1UL : 0UL); 00706 } 00707 00708 /** 00709 * @brief Enable Internal Wake-up line 00710 * @rmtoll CR3 EIWF LL_PWR_EnableInternWU 00711 * @retval None 00712 */ 00713 __STATIC_INLINE void LL_PWR_EnableInternWU(void) 00714 { 00715 SET_BIT(PWR->CR3, PWR_CR3_EIWF); 00716 } 00717 00718 /** 00719 * @brief Disable Internal Wake-up line 00720 * @rmtoll CR3 EIWF LL_PWR_DisableInternWU 00721 * @retval None 00722 */ 00723 __STATIC_INLINE void LL_PWR_DisableInternWU(void) 00724 { 00725 CLEAR_BIT(PWR->CR3, PWR_CR3_EIWF); 00726 } 00727 00728 /** 00729 * @brief Check if Internal Wake-up line is enabled 00730 * @rmtoll CR3 EIWF LL_PWR_IsEnabledInternWU 00731 * @retval State of bit (1 or 0). 00732 */ 00733 __STATIC_INLINE uint32_t LL_PWR_IsEnabledInternWU(void) 00734 { 00735 return ((READ_BIT(PWR->CR3, PWR_CR3_EIWF) == (PWR_CR3_EIWF)) ? 1UL : 0UL); 00736 } 00737 00738 /** 00739 * @brief Enable pull-up and pull-down configuration 00740 * @rmtoll CR3 APC LL_PWR_EnablePUPDCfg 00741 * @retval None 00742 */ 00743 __STATIC_INLINE void LL_PWR_EnablePUPDCfg(void) 00744 { 00745 SET_BIT(PWR->CR3, PWR_CR3_APC); 00746 } 00747 00748 /** 00749 * @brief Disable pull-up and pull-down configuration 00750 * @rmtoll CR3 APC LL_PWR_DisablePUPDCfg 00751 * @retval None 00752 */ 00753 __STATIC_INLINE void LL_PWR_DisablePUPDCfg(void) 00754 { 00755 CLEAR_BIT(PWR->CR3, PWR_CR3_APC); 00756 } 00757 00758 /** 00759 * @brief Check if pull-up and pull-down configuration is enabled 00760 * @rmtoll CR3 APC LL_PWR_IsEnabledPUPDCfg 00761 * @retval State of bit (1 or 0). 00762 */ 00763 __STATIC_INLINE uint32_t LL_PWR_IsEnabledPUPDCfg(void) 00764 { 00765 return ((READ_BIT(PWR->CR3, PWR_CR3_APC) == (PWR_CR3_APC)) ? 1UL : 0UL); 00766 } 00767 00768 #if defined(PWR_CR3_DSIPDEN) 00769 /** 00770 * @brief Enable pull-down activation on DSI pins 00771 * @rmtoll CR3 DSIPDEN LL_PWR_EnableDSIPullDown 00772 * @retval None 00773 */ 00774 __STATIC_INLINE void LL_PWR_EnableDSIPullDown(void) 00775 { 00776 SET_BIT(PWR->CR3, PWR_CR3_DSIPDEN); 00777 } 00778 00779 /** 00780 * @brief Disable pull-down activation on DSI pins 00781 * @rmtoll CR3 DSIPDEN LL_PWR_DisableDSIPullDown 00782 * @retval None 00783 */ 00784 __STATIC_INLINE void LL_PWR_DisableDSIPullDown(void) 00785 { 00786 CLEAR_BIT(PWR->CR3, PWR_CR3_DSIPDEN); 00787 } 00788 00789 /** 00790 * @brief Check if pull-down activation on DSI pins is enabled 00791 * @rmtoll CR3 DSIPDEN LL_PWR_IsEnabledDSIPullDown 00792 * @retval State of bit (1 or 0). 00793 */ 00794 __STATIC_INLINE uint32_t LL_PWR_IsEnabledDSIPullDown(void) 00795 { 00796 return ((READ_BIT(PWR->CR3, PWR_CR3_DSIPDEN) == (PWR_CR3_DSIPDEN)) ? 1UL : 0UL); 00797 } 00798 #endif /* PWR_CR3_DSIPDEN */ 00799 00800 #if defined(PWR_CR3_ENULP) 00801 /** 00802 * @brief Enable Ultra Low Power BORL, BORH and PVD for STOP2 and Standby modes 00803 * @rmtoll CR3 ENULP LL_PWR_EnableBORPVD_ULP 00804 * @retval None 00805 */ 00806 __STATIC_INLINE void LL_PWR_EnableBORPVD_ULP(void) 00807 { 00808 SET_BIT(PWR->CR3, PWR_CR3_ENULP); 00809 } 00810 00811 /** 00812 * @brief Disable Ultra Low Power BORL, BORH and PVD for STOP2 and Standby modes 00813 * @rmtoll CR3 ENULP LL_PWR_DisableBORPVD_ULP 00814 * @retval None 00815 */ 00816 __STATIC_INLINE void LL_PWR_DisableBORPVD_ULP(void) 00817 { 00818 CLEAR_BIT(PWR->CR3, PWR_CR3_ENULP); 00819 } 00820 00821 /** 00822 * @brief Check if Ultra Low Power BORL, BORH and PVD for STOP2 and Standby modes is enabled 00823 * @rmtoll CR3 ENULP LL_PWR_IsEnabledBORPVD_ULP 00824 * @retval State of bit (1 or 0). 00825 */ 00826 __STATIC_INLINE uint32_t LL_PWR_IsEnabledBORPVD_ULP(void) 00827 { 00828 return ((READ_BIT(PWR->CR3, PWR_CR3_ENULP) == (PWR_CR3_ENULP)) ? 1UL : 0UL); 00829 } 00830 #endif /* PWR_CR3_ENULP */ 00831 00832 /** 00833 * @brief Enable SRAM2 full content retention in Standby mode 00834 * @rmtoll CR3 RRS LL_PWR_EnableSRAM2Retention 00835 * @retval None 00836 */ 00837 __STATIC_INLINE void LL_PWR_EnableSRAM2Retention(void) 00838 { 00839 MODIFY_REG(PWR->CR3, PWR_CR3_RRS, LL_PWR_FULL_SRAM2_RETENTION); 00840 } 00841 00842 /** 00843 * @brief Disable SRAM2 content retention in Standby mode 00844 * @rmtoll CR3 RRS LL_PWR_DisableSRAM2Retention 00845 * @retval None 00846 */ 00847 __STATIC_INLINE void LL_PWR_DisableSRAM2Retention(void) 00848 { 00849 CLEAR_BIT(PWR->CR3, PWR_CR3_RRS); 00850 } 00851 00852 /** 00853 * @brief Check if SRAM2 full content retention in Standby mode is enabled 00854 * @rmtoll CR3 RRS LL_PWR_IsEnabledSRAM2Retention 00855 * @retval State of bit (1 or 0). 00856 */ 00857 __STATIC_INLINE uint32_t LL_PWR_IsEnabledSRAM2Retention(void) 00858 { 00859 return ((READ_BIT(PWR->CR3, PWR_CR3_RRS) == (LL_PWR_FULL_SRAM2_RETENTION)) ? 1UL : 0UL); 00860 } 00861 00862 /** 00863 * @brief Set SRAM2 content retention in Standby mode 00864 * @rmtoll CR3 RRS LL_PWR_SetSRAM2ContentRetention 00865 * @param SRAM2Size This parameter can be one of the following values: 00866 * @arg @ref LL_PWR_NO_SRAM2_RETENTION 00867 * @arg @ref LL_PWR_FULL_SRAM2_RETENTION 00868 * @arg @ref LL_PWR_4KBYTES_SRAM2_RETENTION 00869 * @note LL_PWR_4KBYTES_SRAM2_RETENTION parameter is not available on all devices 00870 * @note Setting LL_PWR_NO_SRAM2_RETENTION is same as calling LL_PWR_DisableSRAM2Retention() 00871 * @note Setting LL_PWR_FULL_SRAM2_RETENTION is same as calling LL_PWR_EnableSRAM2Retention() 00872 * @retval None 00873 */ 00874 __STATIC_INLINE void LL_PWR_SetSRAM2ContentRetention(uint32_t SRAM2Size) 00875 { 00876 MODIFY_REG(PWR->CR3, PWR_CR3_RRS, SRAM2Size); 00877 } 00878 00879 /** 00880 * @brief Get SRAM2 content retention in Standby mode 00881 * @rmtoll CR3 RRS LL_PWR_GetSRAM2ContentRetention 00882 * @retval Returned value can be one of the following values: 00883 * @arg @ref LL_PWR_NO_SRAM2_RETENTION 00884 * @arg @ref LL_PWR_FULL_SRAM2_RETENTION 00885 * @arg @ref LL_PWR_4KBYTES_SRAM2_RETENTION 00886 * @note LL_PWR_4KBYTES_SRAM2_RETENTION parameter is not available on all devices 00887 */ 00888 __STATIC_INLINE uint32_t LL_PWR_GetSRAM2ContentRetention(void) 00889 { 00890 return (uint32_t)(READ_BIT(PWR->CR3, PWR_CR3_RRS)); 00891 } 00892 00893 /** 00894 * @brief Enable the WakeUp PINx functionality 00895 * @rmtoll CR3 EWUP1 LL_PWR_EnableWakeUpPin\n 00896 * CR3 EWUP2 LL_PWR_EnableWakeUpPin\n 00897 * CR3 EWUP3 LL_PWR_EnableWakeUpPin\n 00898 * CR3 EWUP4 LL_PWR_EnableWakeUpPin\n 00899 * CR3 EWUP5 LL_PWR_EnableWakeUpPin\n 00900 * @param WakeUpPin This parameter can be one of the following values: 00901 * @arg @ref LL_PWR_WAKEUP_PIN1 00902 * @arg @ref LL_PWR_WAKEUP_PIN2 00903 * @arg @ref LL_PWR_WAKEUP_PIN3 00904 * @arg @ref LL_PWR_WAKEUP_PIN4 00905 * @arg @ref LL_PWR_WAKEUP_PIN5 00906 * @retval None 00907 */ 00908 __STATIC_INLINE void LL_PWR_EnableWakeUpPin(uint32_t WakeUpPin) 00909 { 00910 SET_BIT(PWR->CR3, WakeUpPin); 00911 } 00912 00913 /** 00914 * @brief Disable the WakeUp PINx functionality 00915 * @rmtoll CR3 EWUP1 LL_PWR_DisableWakeUpPin\n 00916 * CR3 EWUP2 LL_PWR_DisableWakeUpPin\n 00917 * CR3 EWUP3 LL_PWR_DisableWakeUpPin\n 00918 * CR3 EWUP4 LL_PWR_DisableWakeUpPin\n 00919 * CR3 EWUP5 LL_PWR_DisableWakeUpPin\n 00920 * @param WakeUpPin This parameter can be one of the following values: 00921 * @arg @ref LL_PWR_WAKEUP_PIN1 00922 * @arg @ref LL_PWR_WAKEUP_PIN2 00923 * @arg @ref LL_PWR_WAKEUP_PIN3 00924 * @arg @ref LL_PWR_WAKEUP_PIN4 00925 * @arg @ref LL_PWR_WAKEUP_PIN5 00926 * @retval None 00927 */ 00928 __STATIC_INLINE void LL_PWR_DisableWakeUpPin(uint32_t WakeUpPin) 00929 { 00930 CLEAR_BIT(PWR->CR3, WakeUpPin); 00931 } 00932 00933 /** 00934 * @brief Check if the WakeUp PINx functionality is enabled 00935 * @rmtoll CR3 EWUP1 LL_PWR_IsEnabledWakeUpPin\n 00936 * CR3 EWUP2 LL_PWR_IsEnabledWakeUpPin\n 00937 * CR3 EWUP3 LL_PWR_IsEnabledWakeUpPin\n 00938 * CR3 EWUP4 LL_PWR_IsEnabledWakeUpPin\n 00939 * CR3 EWUP5 LL_PWR_IsEnabledWakeUpPin\n 00940 * @param WakeUpPin This parameter can be one of the following values: 00941 * @arg @ref LL_PWR_WAKEUP_PIN1 00942 * @arg @ref LL_PWR_WAKEUP_PIN2 00943 * @arg @ref LL_PWR_WAKEUP_PIN3 00944 * @arg @ref LL_PWR_WAKEUP_PIN4 00945 * @arg @ref LL_PWR_WAKEUP_PIN5 00946 * @retval State of bit (1 or 0). 00947 */ 00948 __STATIC_INLINE uint32_t LL_PWR_IsEnabledWakeUpPin(uint32_t WakeUpPin) 00949 { 00950 return ((READ_BIT(PWR->CR3, WakeUpPin) == (WakeUpPin)) ? 1UL : 0UL); 00951 } 00952 00953 #if defined(PWR_CR4_EXT_SMPS_ON) 00954 /** 00955 * @brief Enable the CFLDO working @ 0.95V 00956 * @note When external SMPS is used & CFLDO operating in Range 2, the regulated voltage of the 00957 * internal CFLDO can be reduced to 0.95V. 00958 * @rmtoll CR4 EXT_SMPS_ON LL_PWR_EnableExtSMPS_0V95 00959 * @retval None 00960 */ 00961 __STATIC_INLINE void LL_PWR_EnableExtSMPS_0V95(void) 00962 { 00963 SET_BIT(PWR->CR4, PWR_CR4_EXT_SMPS_ON); 00964 } 00965 00966 /** 00967 * @brief Disable the CFLDO working @ 0.95V 00968 * @note When external SMPS is used & CFLDO operating in Range 2, the regulated voltage of the 00969 * internal CFLDO can be reduced to 0.95V. 00970 * @rmtoll CR4 EXT_SMPS_ON LL_PWR_DisableExtSMPS_0V95 00971 * @retval None 00972 */ 00973 __STATIC_INLINE void LL_PWR_DisableExtSMPS_0V95(void) 00974 { 00975 CLEAR_BIT(PWR->CR4, PWR_CR4_EXT_SMPS_ON); 00976 } 00977 00978 /** 00979 * @brief Check if CFLDO is working @ 0.95V 00980 * @note When external SMPS is used & CFLDO operating in Range 2, the regulated voltage of the 00981 * internal CFLDO can be reduced to 0.95V. 00982 * @rmtoll CR4 EXT_SMPS_ON LL_PWR_IsEnabledExtSMPS_0V95 00983 * @retval State of bit (1 or 0). 00984 */ 00985 __STATIC_INLINE uint32_t LL_PWR_IsEnabledExtSMPS_0V95(void) 00986 { 00987 return ((READ_BIT(PWR->CR4, PWR_CR4_EXT_SMPS_ON) == (PWR_CR4_EXT_SMPS_ON)) ? 1UL : 0UL); 00988 } 00989 #endif /* PWR_CR4_EXT_SMPS_ON */ 00990 00991 /** 00992 * @brief Set the resistor impedance 00993 * @rmtoll CR4 VBRS LL_PWR_SetBattChargResistor 00994 * @param Resistor This parameter can be one of the following values: 00995 * @arg @ref LL_PWR_BATT_CHARG_RESISTOR_5K 00996 * @arg @ref LL_PWR_BATT_CHARGRESISTOR_1_5K 00997 * @retval None 00998 */ 00999 __STATIC_INLINE void LL_PWR_SetBattChargResistor(uint32_t Resistor) 01000 { 01001 MODIFY_REG(PWR->CR4, PWR_CR4_VBRS, Resistor); 01002 } 01003 01004 /** 01005 * @brief Get the resistor impedance 01006 * @rmtoll CR4 VBRS LL_PWR_GetBattChargResistor 01007 * @retval Returned value can be one of the following values: 01008 * @arg @ref LL_PWR_BATT_CHARG_RESISTOR_5K 01009 * @arg @ref LL_PWR_BATT_CHARGRESISTOR_1_5K 01010 */ 01011 __STATIC_INLINE uint32_t LL_PWR_GetBattChargResistor(void) 01012 { 01013 return (uint32_t)(READ_BIT(PWR->CR4, PWR_CR4_VBRS)); 01014 } 01015 01016 /** 01017 * @brief Enable battery charging 01018 * @rmtoll CR4 VBE LL_PWR_EnableBatteryCharging 01019 * @retval None 01020 */ 01021 __STATIC_INLINE void LL_PWR_EnableBatteryCharging(void) 01022 { 01023 SET_BIT(PWR->CR4, PWR_CR4_VBE); 01024 } 01025 01026 /** 01027 * @brief Disable battery charging 01028 * @rmtoll CR4 VBE LL_PWR_DisableBatteryCharging 01029 * @retval None 01030 */ 01031 __STATIC_INLINE void LL_PWR_DisableBatteryCharging(void) 01032 { 01033 CLEAR_BIT(PWR->CR4, PWR_CR4_VBE); 01034 } 01035 01036 /** 01037 * @brief Check if battery charging is enabled 01038 * @rmtoll CR4 VBE LL_PWR_IsEnabledBatteryCharging 01039 * @retval State of bit (1 or 0). 01040 */ 01041 __STATIC_INLINE uint32_t LL_PWR_IsEnabledBatteryCharging(void) 01042 { 01043 return ((READ_BIT(PWR->CR4, PWR_CR4_VBE) == (PWR_CR4_VBE)) ? 1UL : 0UL); 01044 } 01045 01046 /** 01047 * @brief Set the Wake-Up pin polarity low for the event detection 01048 * @rmtoll CR4 WP1 LL_PWR_SetWakeUpPinPolarityLow\n 01049 * CR4 WP2 LL_PWR_SetWakeUpPinPolarityLow\n 01050 * CR4 WP3 LL_PWR_SetWakeUpPinPolarityLow\n 01051 * CR4 WP4 LL_PWR_SetWakeUpPinPolarityLow\n 01052 * CR4 WP5 LL_PWR_SetWakeUpPinPolarityLow 01053 * @param WakeUpPin This parameter can be one of the following values: 01054 * @arg @ref LL_PWR_WAKEUP_PIN1 01055 * @arg @ref LL_PWR_WAKEUP_PIN2 01056 * @arg @ref LL_PWR_WAKEUP_PIN3 01057 * @arg @ref LL_PWR_WAKEUP_PIN4 01058 * @arg @ref LL_PWR_WAKEUP_PIN5 01059 * @retval None 01060 */ 01061 __STATIC_INLINE void LL_PWR_SetWakeUpPinPolarityLow(uint32_t WakeUpPin) 01062 { 01063 SET_BIT(PWR->CR4, WakeUpPin); 01064 } 01065 01066 /** 01067 * @brief Set the Wake-Up pin polarity high for the event detection 01068 * @rmtoll CR4 WP1 LL_PWR_SetWakeUpPinPolarityHigh\n 01069 * CR4 WP2 LL_PWR_SetWakeUpPinPolarityHigh\n 01070 * CR4 WP3 LL_PWR_SetWakeUpPinPolarityHigh\n 01071 * CR4 WP4 LL_PWR_SetWakeUpPinPolarityHigh\n 01072 * CR4 WP5 LL_PWR_SetWakeUpPinPolarityHigh 01073 * @param WakeUpPin This parameter can be one of the following values: 01074 * @arg @ref LL_PWR_WAKEUP_PIN1 01075 * @arg @ref LL_PWR_WAKEUP_PIN2 01076 * @arg @ref LL_PWR_WAKEUP_PIN3 01077 * @arg @ref LL_PWR_WAKEUP_PIN4 01078 * @arg @ref LL_PWR_WAKEUP_PIN5 01079 * @retval None 01080 */ 01081 __STATIC_INLINE void LL_PWR_SetWakeUpPinPolarityHigh(uint32_t WakeUpPin) 01082 { 01083 CLEAR_BIT(PWR->CR4, WakeUpPin); 01084 } 01085 01086 /** 01087 * @brief Get the Wake-Up pin polarity for the event detection 01088 * @rmtoll CR4 WP1 LL_PWR_IsWakeUpPinPolarityLow\n 01089 * CR4 WP2 LL_PWR_IsWakeUpPinPolarityLow\n 01090 * CR4 WP3 LL_PWR_IsWakeUpPinPolarityLow\n 01091 * CR4 WP4 LL_PWR_IsWakeUpPinPolarityLow\n 01092 * CR4 WP5 LL_PWR_IsWakeUpPinPolarityLow 01093 * @param WakeUpPin This parameter can be one of the following values: 01094 * @arg @ref LL_PWR_WAKEUP_PIN1 01095 * @arg @ref LL_PWR_WAKEUP_PIN2 01096 * @arg @ref LL_PWR_WAKEUP_PIN3 01097 * @arg @ref LL_PWR_WAKEUP_PIN4 01098 * @arg @ref LL_PWR_WAKEUP_PIN5 01099 * @retval State of bit (1 or 0). 01100 */ 01101 __STATIC_INLINE uint32_t LL_PWR_IsWakeUpPinPolarityLow(uint32_t WakeUpPin) 01102 { 01103 return ((READ_BIT(PWR->CR4, WakeUpPin) == (WakeUpPin)) ? 1UL : 0UL); 01104 } 01105 01106 /** 01107 * @brief Enable GPIO pull-up state in Standby and Shutdown modes 01108 * @rmtoll PUCRA PU0-15 LL_PWR_EnableGPIOPullUp\n 01109 * PUCRB PU0-15 LL_PWR_EnableGPIOPullUp\n 01110 * PUCRC PU0-15 LL_PWR_EnableGPIOPullUp\n 01111 * PUCRD PU0-15 LL_PWR_EnableGPIOPullUp\n 01112 * PUCRE PU0-15 LL_PWR_EnableGPIOPullUp\n 01113 * PUCRF PU0-15 LL_PWR_EnableGPIOPullUp\n 01114 * PUCRG PU0-15 LL_PWR_EnableGPIOPullUp\n 01115 * PUCRH PU0-15 LL_PWR_EnableGPIOPullUp\n 01116 * PUCRI PU0-11 LL_PWR_EnableGPIOPullUp 01117 * @param GPIO This parameter can be one of the following values: 01118 * @arg @ref LL_PWR_GPIO_A 01119 * @arg @ref LL_PWR_GPIO_B 01120 * @arg @ref LL_PWR_GPIO_C 01121 * @arg @ref LL_PWR_GPIO_D 01122 * @arg @ref LL_PWR_GPIO_E 01123 * @arg @ref LL_PWR_GPIO_F (*) 01124 * @arg @ref LL_PWR_GPIO_G (*) 01125 * @arg @ref LL_PWR_GPIO_H 01126 * @arg @ref LL_PWR_GPIO_I (*) 01127 * 01128 * (*) value not defined in all devices 01129 * @param GPIONumber This parameter can be one of the following values: 01130 * @arg @ref LL_PWR_GPIO_BIT_0 01131 * @arg @ref LL_PWR_GPIO_BIT_1 01132 * @arg @ref LL_PWR_GPIO_BIT_2 01133 * @arg @ref LL_PWR_GPIO_BIT_3 01134 * @arg @ref LL_PWR_GPIO_BIT_4 01135 * @arg @ref LL_PWR_GPIO_BIT_5 01136 * @arg @ref LL_PWR_GPIO_BIT_6 01137 * @arg @ref LL_PWR_GPIO_BIT_7 01138 * @arg @ref LL_PWR_GPIO_BIT_8 01139 * @arg @ref LL_PWR_GPIO_BIT_9 01140 * @arg @ref LL_PWR_GPIO_BIT_10 01141 * @arg @ref LL_PWR_GPIO_BIT_11 01142 * @arg @ref LL_PWR_GPIO_BIT_12 01143 * @arg @ref LL_PWR_GPIO_BIT_13 01144 * @arg @ref LL_PWR_GPIO_BIT_14 01145 * @arg @ref LL_PWR_GPIO_BIT_15 01146 * @retval None 01147 */ 01148 __STATIC_INLINE void LL_PWR_EnableGPIOPullUp(uint32_t GPIO, uint32_t GPIONumber) 01149 { 01150 SET_BIT(*((__IO uint32_t *)GPIO), GPIONumber); 01151 } 01152 01153 /** 01154 * @brief Disable GPIO pull-up state in Standby and Shutdown modes 01155 * @rmtoll PUCRA PU0-15 LL_PWR_DisableGPIOPullUp\n 01156 * PUCRB PU0-15 LL_PWR_DisableGPIOPullUp\n 01157 * PUCRC PU0-15 LL_PWR_DisableGPIOPullUp\n 01158 * PUCRD PU0-15 LL_PWR_DisableGPIOPullUp\n 01159 * PUCRE PU0-15 LL_PWR_DisableGPIOPullUp\n 01160 * PUCRF PU0-15 LL_PWR_DisableGPIOPullUp\n 01161 * PUCRG PU0-15 LL_PWR_DisableGPIOPullUp\n 01162 * PUCRH PU0-15 LL_PWR_DisableGPIOPullUp\n 01163 * PUCRI PU0-11 LL_PWR_DisableGPIOPullUp 01164 * @param GPIO This parameter can be one of the following values: 01165 * @arg @ref LL_PWR_GPIO_A 01166 * @arg @ref LL_PWR_GPIO_B 01167 * @arg @ref LL_PWR_GPIO_C 01168 * @arg @ref LL_PWR_GPIO_D 01169 * @arg @ref LL_PWR_GPIO_E 01170 * @arg @ref LL_PWR_GPIO_F (*) 01171 * @arg @ref LL_PWR_GPIO_G (*) 01172 * @arg @ref LL_PWR_GPIO_H 01173 * @arg @ref LL_PWR_GPIO_I (*) 01174 * 01175 * (*) value not defined in all devices 01176 * @param GPIONumber This parameter can be one of the following values: 01177 * @arg @ref LL_PWR_GPIO_BIT_0 01178 * @arg @ref LL_PWR_GPIO_BIT_1 01179 * @arg @ref LL_PWR_GPIO_BIT_2 01180 * @arg @ref LL_PWR_GPIO_BIT_3 01181 * @arg @ref LL_PWR_GPIO_BIT_4 01182 * @arg @ref LL_PWR_GPIO_BIT_5 01183 * @arg @ref LL_PWR_GPIO_BIT_6 01184 * @arg @ref LL_PWR_GPIO_BIT_7 01185 * @arg @ref LL_PWR_GPIO_BIT_8 01186 * @arg @ref LL_PWR_GPIO_BIT_9 01187 * @arg @ref LL_PWR_GPIO_BIT_10 01188 * @arg @ref LL_PWR_GPIO_BIT_11 01189 * @arg @ref LL_PWR_GPIO_BIT_12 01190 * @arg @ref LL_PWR_GPIO_BIT_13 01191 * @arg @ref LL_PWR_GPIO_BIT_14 01192 * @arg @ref LL_PWR_GPIO_BIT_15 01193 * @retval None 01194 */ 01195 __STATIC_INLINE void LL_PWR_DisableGPIOPullUp(uint32_t GPIO, uint32_t GPIONumber) 01196 { 01197 CLEAR_BIT(*((__IO uint32_t *)GPIO), GPIONumber); 01198 } 01199 01200 /** 01201 * @brief Check if GPIO pull-up state is enabled 01202 * @rmtoll PUCRA PU0-15 LL_PWR_IsEnabledGPIOPullUp\n 01203 * PUCRB PU0-15 LL_PWR_IsEnabledGPIOPullUp\n 01204 * PUCRC PU0-15 LL_PWR_IsEnabledGPIOPullUp\n 01205 * PUCRD PU0-15 LL_PWR_IsEnabledGPIOPullUp\n 01206 * PUCRE PU0-15 LL_PWR_IsEnabledGPIOPullUp\n 01207 * PUCRF PU0-15 LL_PWR_IsEnabledGPIOPullUp\n 01208 * PUCRG PU0-15 LL_PWR_IsEnabledGPIOPullUp\n 01209 * PUCRH PU0-15 LL_PWR_IsEnabledGPIOPullUp\n 01210 * PUCRI PU0-11 LL_PWR_IsEnabledGPIOPullUp 01211 * @param GPIO This parameter can be one of the following values: 01212 * @arg @ref LL_PWR_GPIO_A 01213 * @arg @ref LL_PWR_GPIO_B 01214 * @arg @ref LL_PWR_GPIO_C 01215 * @arg @ref LL_PWR_GPIO_D 01216 * @arg @ref LL_PWR_GPIO_E 01217 * @arg @ref LL_PWR_GPIO_F (*) 01218 * @arg @ref LL_PWR_GPIO_G (*) 01219 * @arg @ref LL_PWR_GPIO_H 01220 * @arg @ref LL_PWR_GPIO_I (*) 01221 * 01222 * (*) value not defined in all devices 01223 * @param GPIONumber This parameter can be one of the following values: 01224 * @arg @ref LL_PWR_GPIO_BIT_0 01225 * @arg @ref LL_PWR_GPIO_BIT_1 01226 * @arg @ref LL_PWR_GPIO_BIT_2 01227 * @arg @ref LL_PWR_GPIO_BIT_3 01228 * @arg @ref LL_PWR_GPIO_BIT_4 01229 * @arg @ref LL_PWR_GPIO_BIT_5 01230 * @arg @ref LL_PWR_GPIO_BIT_6 01231 * @arg @ref LL_PWR_GPIO_BIT_7 01232 * @arg @ref LL_PWR_GPIO_BIT_8 01233 * @arg @ref LL_PWR_GPIO_BIT_9 01234 * @arg @ref LL_PWR_GPIO_BIT_10 01235 * @arg @ref LL_PWR_GPIO_BIT_11 01236 * @arg @ref LL_PWR_GPIO_BIT_12 01237 * @arg @ref LL_PWR_GPIO_BIT_13 01238 * @arg @ref LL_PWR_GPIO_BIT_14 01239 * @arg @ref LL_PWR_GPIO_BIT_15 01240 * @retval State of bit (1 or 0). 01241 */ 01242 __STATIC_INLINE uint32_t LL_PWR_IsEnabledGPIOPullUp(uint32_t GPIO, uint32_t GPIONumber) 01243 { 01244 return ((READ_BIT(*((__IO uint32_t *)GPIO), GPIONumber) == (GPIONumber)) ? 1UL : 0UL); 01245 } 01246 01247 /** 01248 * @brief Enable GPIO pull-down state in Standby and Shutdown modes 01249 * @rmtoll PDCRA PD0-15 LL_PWR_EnableGPIOPullDown\n 01250 * PDCRB PD0-15 LL_PWR_EnableGPIOPullDown\n 01251 * PDCRC PD0-15 LL_PWR_EnableGPIOPullDown\n 01252 * PDCRD PD0-15 LL_PWR_EnableGPIOPullDown\n 01253 * PDCRE PD0-15 LL_PWR_EnableGPIOPullDown\n 01254 * PDCRF PD0-15 LL_PWR_EnableGPIOPullDown\n 01255 * PDCRG PD0-15 LL_PWR_EnableGPIOPullDown\n 01256 * PDCRH PD0-15 LL_PWR_EnableGPIOPullDown\n 01257 * PDCRI PD0-11 LL_PWR_EnableGPIOPullDown 01258 * @param GPIO This parameter can be one of the following values: 01259 * @arg @ref LL_PWR_GPIO_A 01260 * @arg @ref LL_PWR_GPIO_B 01261 * @arg @ref LL_PWR_GPIO_C 01262 * @arg @ref LL_PWR_GPIO_D 01263 * @arg @ref LL_PWR_GPIO_E 01264 * @arg @ref LL_PWR_GPIO_F (*) 01265 * @arg @ref LL_PWR_GPIO_G (*) 01266 * @arg @ref LL_PWR_GPIO_H 01267 * @arg @ref LL_PWR_GPIO_I (*) 01268 * 01269 * (*) value not defined in all devices 01270 * @param GPIONumber This parameter can be one of the following values: 01271 * @arg @ref LL_PWR_GPIO_BIT_0 01272 * @arg @ref LL_PWR_GPIO_BIT_1 01273 * @arg @ref LL_PWR_GPIO_BIT_2 01274 * @arg @ref LL_PWR_GPIO_BIT_3 01275 * @arg @ref LL_PWR_GPIO_BIT_4 01276 * @arg @ref LL_PWR_GPIO_BIT_5 01277 * @arg @ref LL_PWR_GPIO_BIT_6 01278 * @arg @ref LL_PWR_GPIO_BIT_7 01279 * @arg @ref LL_PWR_GPIO_BIT_8 01280 * @arg @ref LL_PWR_GPIO_BIT_9 01281 * @arg @ref LL_PWR_GPIO_BIT_10 01282 * @arg @ref LL_PWR_GPIO_BIT_11 01283 * @arg @ref LL_PWR_GPIO_BIT_12 01284 * @arg @ref LL_PWR_GPIO_BIT_13 01285 * @arg @ref LL_PWR_GPIO_BIT_14 01286 * @arg @ref LL_PWR_GPIO_BIT_15 01287 * @retval None 01288 */ 01289 __STATIC_INLINE void LL_PWR_EnableGPIOPullDown(uint32_t GPIO, uint32_t GPIONumber) 01290 { 01291 SET_BIT(*((__IO uint32_t *)(GPIO + 4U)), GPIONumber); 01292 } 01293 01294 /** 01295 * @brief Disable GPIO pull-down state in Standby and Shutdown modes 01296 * @rmtoll PDCRA PD0-15 LL_PWR_DisableGPIOPullDown\n 01297 * PDCRB PD0-15 LL_PWR_DisableGPIOPullDown\n 01298 * PDCRC PD0-15 LL_PWR_DisableGPIOPullDown\n 01299 * PDCRD PD0-15 LL_PWR_DisableGPIOPullDown\n 01300 * PDCRE PD0-15 LL_PWR_DisableGPIOPullDown\n 01301 * PDCRF PD0-15 LL_PWR_DisableGPIOPullDown\n 01302 * PDCRG PD0-15 LL_PWR_DisableGPIOPullDown\n 01303 * PDCRH PD0-15 LL_PWR_DisableGPIOPullDown\n 01304 * PDCRI PD0-11 LL_PWR_DisableGPIOPullDown 01305 * @param GPIO This parameter can be one of the following values: 01306 * @arg @ref LL_PWR_GPIO_A 01307 * @arg @ref LL_PWR_GPIO_B 01308 * @arg @ref LL_PWR_GPIO_C 01309 * @arg @ref LL_PWR_GPIO_D 01310 * @arg @ref LL_PWR_GPIO_E 01311 * @arg @ref LL_PWR_GPIO_F (*) 01312 * @arg @ref LL_PWR_GPIO_G (*) 01313 * @arg @ref LL_PWR_GPIO_H 01314 * @arg @ref LL_PWR_GPIO_I (*) 01315 * 01316 * (*) value not defined in all devices 01317 * @param GPIONumber This parameter can be one of the following values: 01318 * @arg @ref LL_PWR_GPIO_BIT_0 01319 * @arg @ref LL_PWR_GPIO_BIT_1 01320 * @arg @ref LL_PWR_GPIO_BIT_2 01321 * @arg @ref LL_PWR_GPIO_BIT_3 01322 * @arg @ref LL_PWR_GPIO_BIT_4 01323 * @arg @ref LL_PWR_GPIO_BIT_5 01324 * @arg @ref LL_PWR_GPIO_BIT_6 01325 * @arg @ref LL_PWR_GPIO_BIT_7 01326 * @arg @ref LL_PWR_GPIO_BIT_8 01327 * @arg @ref LL_PWR_GPIO_BIT_9 01328 * @arg @ref LL_PWR_GPIO_BIT_10 01329 * @arg @ref LL_PWR_GPIO_BIT_11 01330 * @arg @ref LL_PWR_GPIO_BIT_12 01331 * @arg @ref LL_PWR_GPIO_BIT_13 01332 * @arg @ref LL_PWR_GPIO_BIT_14 01333 * @arg @ref LL_PWR_GPIO_BIT_15 01334 * @retval None 01335 */ 01336 __STATIC_INLINE void LL_PWR_DisableGPIOPullDown(uint32_t GPIO, uint32_t GPIONumber) 01337 { 01338 CLEAR_BIT(*((__IO uint32_t *)(GPIO + 4U)), GPIONumber); 01339 } 01340 01341 /** 01342 * @brief Check if GPIO pull-down state is enabled 01343 * @rmtoll PDCRA PD0-15 LL_PWR_IsEnabledGPIOPullDown\n 01344 * PDCRB PD0-15 LL_PWR_IsEnabledGPIOPullDown\n 01345 * PDCRC PD0-15 LL_PWR_IsEnabledGPIOPullDown\n 01346 * PDCRD PD0-15 LL_PWR_IsEnabledGPIOPullDown\n 01347 * PDCRE PD0-15 LL_PWR_IsEnabledGPIOPullDown\n 01348 * PDCRF PD0-15 LL_PWR_IsEnabledGPIOPullDown\n 01349 * PDCRG PD0-15 LL_PWR_IsEnabledGPIOPullDown\n 01350 * PDCRH PD0-15 LL_PWR_IsEnabledGPIOPullDown\n 01351 * PDCRI PD0-11 LL_PWR_IsEnabledGPIOPullDown 01352 * @param GPIO This parameter can be one of the following values: 01353 * @arg @ref LL_PWR_GPIO_A 01354 * @arg @ref LL_PWR_GPIO_B 01355 * @arg @ref LL_PWR_GPIO_C 01356 * @arg @ref LL_PWR_GPIO_D 01357 * @arg @ref LL_PWR_GPIO_E 01358 * @arg @ref LL_PWR_GPIO_F (*) 01359 * @arg @ref LL_PWR_GPIO_G (*) 01360 * @arg @ref LL_PWR_GPIO_H 01361 * @arg @ref LL_PWR_GPIO_I (*) 01362 * 01363 * (*) value not defined in all devices 01364 * @param GPIONumber This parameter can be one of the following values: 01365 * @arg @ref LL_PWR_GPIO_BIT_0 01366 * @arg @ref LL_PWR_GPIO_BIT_1 01367 * @arg @ref LL_PWR_GPIO_BIT_2 01368 * @arg @ref LL_PWR_GPIO_BIT_3 01369 * @arg @ref LL_PWR_GPIO_BIT_4 01370 * @arg @ref LL_PWR_GPIO_BIT_5 01371 * @arg @ref LL_PWR_GPIO_BIT_6 01372 * @arg @ref LL_PWR_GPIO_BIT_7 01373 * @arg @ref LL_PWR_GPIO_BIT_8 01374 * @arg @ref LL_PWR_GPIO_BIT_9 01375 * @arg @ref LL_PWR_GPIO_BIT_10 01376 * @arg @ref LL_PWR_GPIO_BIT_11 01377 * @arg @ref LL_PWR_GPIO_BIT_12 01378 * @arg @ref LL_PWR_GPIO_BIT_13 01379 * @arg @ref LL_PWR_GPIO_BIT_14 01380 * @arg @ref LL_PWR_GPIO_BIT_15 01381 * @retval State of bit (1 or 0). 01382 */ 01383 __STATIC_INLINE uint32_t LL_PWR_IsEnabledGPIOPullDown(uint32_t GPIO, uint32_t GPIONumber) 01384 { 01385 return ((READ_BIT(*((__IO uint32_t *)(GPIO + 4U)), GPIONumber) == (GPIONumber)) ? 1UL : 0UL); 01386 } 01387 01388 /** 01389 * @} 01390 */ 01391 01392 /** @defgroup PWR_LL_EF_FLAG_Management FLAG_Management 01393 * @{ 01394 */ 01395 01396 /** 01397 * @brief Get Internal Wake-up line Flag 01398 * @rmtoll SR1 WUFI LL_PWR_IsActiveFlag_InternWU 01399 * @retval State of bit (1 or 0). 01400 */ 01401 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_InternWU(void) 01402 { 01403 return ((READ_BIT(PWR->SR1, PWR_SR1_WUFI) == (PWR_SR1_WUFI)) ? 1UL : 0UL); 01404 } 01405 01406 #if defined(PWR_SR1_EXT_SMPS_RDY) 01407 /** 01408 * @brief Get Ready Flag for switching to external SMPS 01409 * @rmtoll SR1 EXT_SMPS_RDY LL_PWR_IsActiveFlag_ExtSMPSReady 01410 * @retval State of bit (1 or 0). 01411 */ 01412 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_ExtSMPSReady(void) 01413 { 01414 return ((READ_BIT(PWR->SR1, PWR_SR1_EXT_SMPS_RDY) == (PWR_SR1_EXT_SMPS_RDY)) ? 1UL : 0UL); 01415 } 01416 #endif /* PWR_SR1_EXT_SMPS_RDY */ 01417 01418 /** 01419 * @brief Get Stand-By Flag 01420 * @rmtoll SR1 SBF LL_PWR_IsActiveFlag_SB 01421 * @retval State of bit (1 or 0). 01422 */ 01423 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_SB(void) 01424 { 01425 return ((READ_BIT(PWR->SR1, PWR_SR1_SBF) == (PWR_SR1_SBF)) ? 1UL : 0UL); 01426 } 01427 01428 /** 01429 * @brief Get Wake-up Flag 5 01430 * @rmtoll SR1 WUF5 LL_PWR_IsActiveFlag_WU5 01431 * @retval State of bit (1 or 0). 01432 */ 01433 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU5(void) 01434 { 01435 return ((READ_BIT(PWR->SR1, PWR_SR1_WUF5) == (PWR_SR1_WUF5)) ? 1UL : 0UL); 01436 } 01437 01438 /** 01439 * @brief Get Wake-up Flag 4 01440 * @rmtoll SR1 WUF4 LL_PWR_IsActiveFlag_WU4 01441 * @retval State of bit (1 or 0). 01442 */ 01443 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU4(void) 01444 { 01445 return ((READ_BIT(PWR->SR1, PWR_SR1_WUF4) == (PWR_SR1_WUF4)) ? 1UL : 0UL); 01446 } 01447 01448 /** 01449 * @brief Get Wake-up Flag 3 01450 * @rmtoll SR1 WUF3 LL_PWR_IsActiveFlag_WU3 01451 * @retval State of bit (1 or 0). 01452 */ 01453 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU3(void) 01454 { 01455 return ((READ_BIT(PWR->SR1, PWR_SR1_WUF3) == (PWR_SR1_WUF3)) ? 1UL : 0UL); 01456 } 01457 01458 /** 01459 * @brief Get Wake-up Flag 2 01460 * @rmtoll SR1 WUF2 LL_PWR_IsActiveFlag_WU2 01461 * @retval State of bit (1 or 0). 01462 */ 01463 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU2(void) 01464 { 01465 return ((READ_BIT(PWR->SR1, PWR_SR1_WUF2) == (PWR_SR1_WUF2)) ? 1UL : 0UL); 01466 } 01467 01468 /** 01469 * @brief Get Wake-up Flag 1 01470 * @rmtoll SR1 WUF1 LL_PWR_IsActiveFlag_WU1 01471 * @retval State of bit (1 or 0). 01472 */ 01473 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU1(void) 01474 { 01475 return ((READ_BIT(PWR->SR1, PWR_SR1_WUF1) == (PWR_SR1_WUF1)) ? 1UL : 0UL); 01476 } 01477 01478 /** 01479 * @brief Clear Stand-By Flag 01480 * @rmtoll SCR CSBF LL_PWR_ClearFlag_SB 01481 * @retval None 01482 */ 01483 __STATIC_INLINE void LL_PWR_ClearFlag_SB(void) 01484 { 01485 WRITE_REG(PWR->SCR, PWR_SCR_CSBF); 01486 } 01487 01488 /** 01489 * @brief Clear Wake-up Flags 01490 * @rmtoll SCR CWUF LL_PWR_ClearFlag_WU 01491 * @retval None 01492 */ 01493 __STATIC_INLINE void LL_PWR_ClearFlag_WU(void) 01494 { 01495 WRITE_REG(PWR->SCR, PWR_SCR_CWUF); 01496 } 01497 01498 /** 01499 * @brief Clear Wake-up Flag 5 01500 * @rmtoll SCR CWUF5 LL_PWR_ClearFlag_WU5 01501 * @retval None 01502 */ 01503 __STATIC_INLINE void LL_PWR_ClearFlag_WU5(void) 01504 { 01505 WRITE_REG(PWR->SCR, PWR_SCR_CWUF5); 01506 } 01507 01508 /** 01509 * @brief Clear Wake-up Flag 4 01510 * @rmtoll SCR CWUF4 LL_PWR_ClearFlag_WU4 01511 * @retval None 01512 */ 01513 __STATIC_INLINE void LL_PWR_ClearFlag_WU4(void) 01514 { 01515 WRITE_REG(PWR->SCR, PWR_SCR_CWUF4); 01516 } 01517 01518 /** 01519 * @brief Clear Wake-up Flag 3 01520 * @rmtoll SCR CWUF3 LL_PWR_ClearFlag_WU3 01521 * @retval None 01522 */ 01523 __STATIC_INLINE void LL_PWR_ClearFlag_WU3(void) 01524 { 01525 WRITE_REG(PWR->SCR, PWR_SCR_CWUF3); 01526 } 01527 01528 /** 01529 * @brief Clear Wake-up Flag 2 01530 * @rmtoll SCR CWUF2 LL_PWR_ClearFlag_WU2 01531 * @retval None 01532 */ 01533 __STATIC_INLINE void LL_PWR_ClearFlag_WU2(void) 01534 { 01535 WRITE_REG(PWR->SCR, PWR_SCR_CWUF2); 01536 } 01537 01538 /** 01539 * @brief Clear Wake-up Flag 1 01540 * @rmtoll SCR CWUF1 LL_PWR_ClearFlag_WU1 01541 * @retval None 01542 */ 01543 __STATIC_INLINE void LL_PWR_ClearFlag_WU1(void) 01544 { 01545 WRITE_REG(PWR->SCR, PWR_SCR_CWUF1); 01546 } 01547 01548 /** 01549 * @brief Indicate whether VDDA voltage is below or above PVM4 threshold 01550 * @rmtoll SR2 PVMO4 LL_PWR_IsActiveFlag_PVMO4 01551 * @retval State of bit (1 or 0). 01552 */ 01553 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_PVMO4(void) 01554 { 01555 return ((READ_BIT(PWR->SR2, PWR_SR2_PVMO4) == (PWR_SR2_PVMO4)) ? 1UL : 0UL); 01556 } 01557 01558 /** 01559 * @brief Indicate whether VDDA voltage is below or above PVM3 threshold 01560 * @rmtoll SR2 PVMO3 LL_PWR_IsActiveFlag_PVMO3 01561 * @retval State of bit (1 or 0). 01562 */ 01563 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_PVMO3(void) 01564 { 01565 return ((READ_BIT(PWR->SR2, PWR_SR2_PVMO3) == (PWR_SR2_PVMO3)) ? 1UL : 0UL); 01566 } 01567 01568 #if defined(PWR_SR2_PVMO2) 01569 /** 01570 * @brief Indicate whether VDDIO2 voltage is below or above PVM2 threshold 01571 * @rmtoll SR2 PVMO2 LL_PWR_IsActiveFlag_PVMO2 01572 * @retval State of bit (1 or 0). 01573 */ 01574 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_PVMO2(void) 01575 { 01576 return ((READ_BIT(PWR->SR2, PWR_SR2_PVMO2) == (PWR_SR2_PVMO2)) ? 1UL : 0UL); 01577 } 01578 #endif /* PWR_SR2_PVMO2 */ 01579 01580 #if defined(PWR_SR2_PVMO1) 01581 /** 01582 * @brief Indicate whether VDDUSB voltage is below or above PVM1 threshold 01583 * @rmtoll SR2 PVMO1 LL_PWR_IsActiveFlag_PVMO1 01584 * @retval State of bit (1 or 0). 01585 */ 01586 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_PVMO1(void) 01587 { 01588 return ((READ_BIT(PWR->SR2, PWR_SR2_PVMO1) == (PWR_SR2_PVMO1)) ? 1UL : 0UL); 01589 } 01590 #endif /* PWR_SR2_PVMO1 */ 01591 01592 /** 01593 * @brief Indicate whether VDD voltage is below or above the selected PVD threshold 01594 * @rmtoll SR2 PVDO LL_PWR_IsActiveFlag_PVDO 01595 * @retval State of bit (1 or 0). 01596 */ 01597 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_PVDO(void) 01598 { 01599 return ((READ_BIT(PWR->SR2, PWR_SR2_PVDO) == (PWR_SR2_PVDO)) ? 1UL : 0UL); 01600 } 01601 01602 /** 01603 * @brief Indicate whether the regulator is ready in the selected voltage range or if its output voltage is still changing to the required voltage level 01604 * @rmtoll SR2 VOSF LL_PWR_IsActiveFlag_VOS 01605 * @retval State of bit (1 or 0). 01606 */ 01607 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_VOS(void) 01608 { 01609 return ((READ_BIT(PWR->SR2, PWR_SR2_VOSF) == (PWR_SR2_VOSF)) ? 1UL : 0UL); 01610 } 01611 01612 /** 01613 * @brief Indicate whether the regulator is ready in main mode or is in low-power mode 01614 * @note Take care, return value "0" means the regulator is ready. Return value "1" means the output voltage range is still changing. 01615 * @rmtoll SR2 REGLPF LL_PWR_IsActiveFlag_REGLPF 01616 * @retval State of bit (1 or 0). 01617 */ 01618 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_REGLPF(void) 01619 { 01620 return ((READ_BIT(PWR->SR2, PWR_SR2_REGLPF) == (PWR_SR2_REGLPF)) ? 1UL : 0UL); 01621 } 01622 01623 /** 01624 * @brief Indicate whether or not the low-power regulator is ready 01625 * @rmtoll SR2 REGLPS LL_PWR_IsActiveFlag_REGLPS 01626 * @retval State of bit (1 or 0). 01627 */ 01628 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_REGLPS(void) 01629 { 01630 return ((READ_BIT(PWR->SR2, PWR_SR2_REGLPS) == (PWR_SR2_REGLPS)) ? 1UL : 0UL); 01631 } 01632 01633 /** 01634 * @} 01635 */ 01636 01637 #if defined(USE_FULL_LL_DRIVER) 01638 /** @defgroup PWR_LL_EF_Init De-initialization function 01639 * @{ 01640 */ 01641 ErrorStatus LL_PWR_DeInit(void); 01642 /** 01643 * @} 01644 */ 01645 #endif /* USE_FULL_LL_DRIVER */ 01646 01647 /** @defgroup PWR_LL_EF_Legacy_Functions Legacy functions name 01648 * @{ 01649 */ 01650 /* Old functions name kept for legacy purpose, to be replaced by the */ 01651 /* current functions name. */ 01652 #define LL_PWR_IsActiveFlag_VOSF LL_PWR_IsActiveFlag_VOS 01653 /** 01654 * @} 01655 */ 01656 01657 /** 01658 * @} 01659 */ 01660 01661 /** 01662 * @} 01663 */ 01664 01665 #endif /* defined(PWR) */ 01666 01667 /** 01668 * @} 01669 */ 01670 01671 #ifdef __cplusplus 01672 } 01673 #endif 01674 01675 #endif /* STM32L4xx_LL_PWR_H */