Hal Drivers for L4
Dependents: BSP OneHopeOnePrayer FINAL_AUDIO_RECORD AudioDemo
Fork of STM32L4xx_HAL_Driver by
stm32l4xx_ll_pwr.h
00001 /** 00002 ****************************************************************************** 00003 * @file stm32l4xx_ll_pwr.h 00004 * @author MCD Application Team 00005 * @version V1.1.0 00006 * @date 16-September-2015 00007 * @brief Header file of PWR LL module. 00008 ****************************************************************************** 00009 * @attention 00010 * 00011 * <h2><center>© COPYRIGHT(c) 2015 STMicroelectronics</center></h2> 00012 * 00013 * Redistribution and use in source and binary forms, with or without modification, 00014 * are permitted provided that the following conditions are met: 00015 * 1. Redistributions of source code must retain the above copyright notice, 00016 * this list of conditions and the following disclaimer. 00017 * 2. Redistributions in binary form must reproduce the above copyright notice, 00018 * this list of conditions and the following disclaimer in the documentation 00019 * and/or other materials provided with the distribution. 00020 * 3. Neither the name of STMicroelectronics nor the names of its contributors 00021 * may be used to endorse or promote products derived from this software 00022 * without specific prior written permission. 00023 * 00024 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 00025 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 00026 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00027 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 00028 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 00029 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 00030 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 00031 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 00032 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 00033 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00034 * 00035 ****************************************************************************** 00036 */ 00037 00038 /* Define to prevent recursive inclusion -------------------------------------*/ 00039 #ifndef __STM32L4xx_LL_PWR_H 00040 #define __STM32L4xx_LL_PWR_H 00041 00042 #ifdef __cplusplus 00043 extern "C" { 00044 #endif 00045 00046 /* Includes ------------------------------------------------------------------*/ 00047 #include "stm32l4xx.h" 00048 00049 /** @addtogroup STM32L4xx_LL_Driver 00050 * @{ 00051 */ 00052 00053 #if defined(PWR) 00054 00055 /** @defgroup PWR_LL PWR 00056 * @{ 00057 */ 00058 00059 /* Private types -------------------------------------------------------------*/ 00060 /* Private variables ---------------------------------------------------------*/ 00061 00062 /* Private constants ---------------------------------------------------------*/ 00063 00064 /* Private macros ------------------------------------------------------------*/ 00065 00066 /* Exported types ------------------------------------------------------------*/ 00067 /* Exported constants --------------------------------------------------------*/ 00068 /** @defgroup PWR_LL_Exported_Constants PWR Exported Constants 00069 * @{ 00070 */ 00071 00072 /** @defgroup PWR_LL_EC_CLEAR_FLAG Clear Flags Defines 00073 * @brief Flags defines which can be used with LL_PWR_WriteReg function 00074 * @{ 00075 */ 00076 #define LL_PWR_SCR_CSBF PWR_SCR_CSBF 00077 #define LL_PWR_SCR_CWUF PWR_SCR_CWUF 00078 #define LL_PWR_SCR_CWUF5 PWR_SCR_CWUF5 00079 #define LL_PWR_SCR_CWUF4 PWR_SCR_CWUF4 00080 #define LL_PWR_SCR_CWUF3 PWR_SCR_CWUF3 00081 #define LL_PWR_SCR_CWUF2 PWR_SCR_CWUF2 00082 #define LL_PWR_SCR_CWUF1 PWR_SCR_CWUF1 00083 /** 00084 * @} 00085 */ 00086 00087 /** @defgroup PWR_LL_EC_GET_FLAG Get Flags Defines 00088 * @brief Flags defines which can be used with LL_PWR_ReadReg function 00089 * @{ 00090 */ 00091 #define LL_PWR_SR1_WUFI PWR_SR1_WUFI 00092 #define LL_PWR_SR1_SBF PWR_SR1_SBF 00093 #define LL_PWR_SR1_WUF5 PWR_SR1_WUF5 00094 #define LL_PWR_SR1_WUF4 PWR_SR1_WUF4 00095 #define LL_PWR_SR1_WUF3 PWR_SR1_WUF3 00096 #define LL_PWR_SR1_WUF2 PWR_SR1_WUF2 00097 #define LL_PWR_SR1_WUF1 PWR_SR1_WUF1 00098 #define LL_PWR_SR2_PVMO4 PWR_SR2_PVMO4 00099 #define LL_PWR_SR2_PVMO3 PWR_SR2_PVMO3 00100 #define LL_PWR_SR2_PVMO2 PWR_SR2_PVMO2 00101 #define LL_PWR_SR2_PVMO1 PWR_SR2_PVMO1 00102 #define LL_PWR_SR2_PVDO PWR_SR2_PVDO 00103 #define LL_PWR_SR2_VOSF PWR_SR2_VOSF 00104 #define LL_PWR_SR2_REGLPF PWR_SR2_REGLPF 00105 #define LL_PWR_SR2_REGLPS PWR_SR2_REGLPS 00106 /** 00107 * @} 00108 */ 00109 00110 /** @defgroup PWR_LL_EC_REGU_VOLTAGE REGU VOLTAGE 00111 * @{ 00112 */ 00113 #define LL_PWR_REGU_VOLTAGE_SCALE1 (PWR_CR1_VOS_0) 00114 #define LL_PWR_REGU_VOLTAGE_SCALE2 (PWR_CR1_VOS_1) 00115 /** 00116 * @} 00117 */ 00118 00119 /** @defgroup PWR_LL_EC_MODE_STOP1_MAIN MODE STOP1 MAIN 00120 * @{ 00121 */ 00122 #define LL_PWR_MODE_STOP1_MAIN_REGU (PWR_CR1_LPMS_STOP1MR) 00123 #define LL_PWR_MODE_STOP1_LP_REGU (PWR_CR1_LPMS_STOP1LPR) 00124 #define LL_PWR_MODE_STOP2 (PWR_CR1_LPMS_STOP2) 00125 #define LL_PWR_MODE_STANDBY (PWR_CR1_LPMS_STANDBY) 00126 #define LL_PWR_MODE_SHUTDOWN (PWR_CR1_LPMS_SHUTDOWN) 00127 /** 00128 * @} 00129 */ 00130 00131 /** @defgroup PWR_LL_EC_PVM_VDDUSB_1 PVM VDDUSB 1 00132 * @{ 00133 */ 00134 #if defined(USB_OTG_FS) 00135 #define LL_PWR_PVM_VDDUSB_1_2V (PWR_CR2_PVME1) /* Monitoring VDDUSB vs. 1.2V */ 00136 #endif /* USB_OTG_FS */ 00137 #define LL_PWR_PVM_VDDIO2_0_9V (PWR_CR2_PVME2) /* Monitoring VDDIO2 vs. 0.9V */ 00138 #define LL_PWR_PVM_VDDA_1_62V (PWR_CR2_PVME3) /* Monitoring VDDA vs. 1.62V */ 00139 #define LL_PWR_PVM_VDDA_2_2V (PWR_CR2_PVME4) /* Monitoring VDDA vs. 2.2V */ 00140 /** 00141 * @} 00142 */ 00143 00144 /** @defgroup PWR_LL_EC_PVDLEVEL PVDLEVEL 00145 * @{ 00146 */ 00147 #define LL_PWR_PVDLEVEL_0 (PWR_CR2_PLS_LEV0) /* VPVD0 around 2.0 V */ 00148 #define LL_PWR_PVDLEVEL_1 (PWR_CR2_PLS_LEV1) /* VPVD1 around 2.2 V */ 00149 #define LL_PWR_PVDLEVEL_2 (PWR_CR2_PLS_LEV2) /* VPVD2 around 2.4 V */ 00150 #define LL_PWR_PVDLEVEL_3 (PWR_CR2_PLS_LEV3) /* VPVD3 around 2.5 V */ 00151 #define LL_PWR_PVDLEVEL_4 (PWR_CR2_PLS_LEV4) /* VPVD4 around 2.6 V */ 00152 #define LL_PWR_PVDLEVEL_5 (PWR_CR2_PLS_LEV5) /* VPVD5 around 2.8 V */ 00153 #define LL_PWR_PVDLEVEL_6 (PWR_CR2_PLS_LEV6) /* VPVD6 around 2.9 V */ 00154 #define LL_PWR_PVDLEVEL_7 (PWR_CR2_PLS_LEV7) /* External input analog voltage (Compare internally to VREFINT) */ 00155 /** 00156 * @} 00157 */ 00158 00159 /** @defgroup PWR_LL_EC_WAKEUP WAKEUP 00160 * @{ 00161 */ 00162 #define LL_PWR_WAKEUP_PIN1 (PWR_CR3_EWUP1) 00163 #define LL_PWR_WAKEUP_PIN2 (PWR_CR3_EWUP2) 00164 #define LL_PWR_WAKEUP_PIN3 (PWR_CR3_EWUP3) 00165 #define LL_PWR_WAKEUP_PIN4 (PWR_CR3_EWUP4) 00166 #define LL_PWR_WAKEUP_PIN5 (PWR_CR3_EWUP5) 00167 /** 00168 * @} 00169 */ 00170 00171 /** @defgroup PWR_LL_EC_BATT_CHARG_RESISTOR BATT CHARG RESISTOR 00172 * @{ 00173 */ 00174 #define LL_PWR_BATT_CHARG_RESISTOR_5K ((uint32_t)0x00000000) 00175 #define LL_PWR_BATT_CHARGRESISTOR_1_5K (PWR_CR4_VBRS) 00176 /** 00177 * @} 00178 */ 00179 00180 /** @defgroup PWR_LL_EC_GPIO GPIO 00181 * @{ 00182 */ 00183 #define LL_PWR_GPIO_A ((uint32_t)(&(PWR->PUCRA))) 00184 #define LL_PWR_GPIO_B ((uint32_t)(&(PWR->PUCRB))) 00185 #define LL_PWR_GPIO_C ((uint32_t)(&(PWR->PUCRC))) 00186 #define LL_PWR_GPIO_D ((uint32_t)(&(PWR->PUCRD))) 00187 #define LL_PWR_GPIO_E ((uint32_t)(&(PWR->PUCRE))) 00188 #define LL_PWR_GPIO_F ((uint32_t)(&(PWR->PUCRF))) 00189 #define LL_PWR_GPIO_G ((uint32_t)(&(PWR->PUCRG))) 00190 #define LL_PWR_GPIO_H ((uint32_t)(&(PWR->PUCRH))) 00191 /** 00192 * @} 00193 */ 00194 00195 /** @defgroup PWR_LL_EC_GPIO_BIT GPIO BIT 00196 * @{ 00197 */ 00198 #define LL_PWR_GPIO_BIT_0 ((uint32_t)0x00000001) 00199 #define LL_PWR_GPIO_BIT_1 ((uint32_t)0x00000002) 00200 #define LL_PWR_GPIO_BIT_2 ((uint32_t)0x00000004) 00201 #define LL_PWR_GPIO_BIT_3 ((uint32_t)0x00000008) 00202 #define LL_PWR_GPIO_BIT_4 ((uint32_t)0x00000010) 00203 #define LL_PWR_GPIO_BIT_5 ((uint32_t)0x00000020) 00204 #define LL_PWR_GPIO_BIT_6 ((uint32_t)0x00000040) 00205 #define LL_PWR_GPIO_BIT_7 ((uint32_t)0x00000080) 00206 #define LL_PWR_GPIO_BIT_8 ((uint32_t)0x00000100) 00207 #define LL_PWR_GPIO_BIT_9 ((uint32_t)0x00000200) 00208 #define LL_PWR_GPIO_BIT_10 ((uint32_t)0x00000400) 00209 #define LL_PWR_GPIO_BIT_11 ((uint32_t)0x00000800) 00210 #define LL_PWR_GPIO_BIT_12 ((uint32_t)0x00001000) 00211 #define LL_PWR_GPIO_BIT_13 ((uint32_t)0x00002000) 00212 #define LL_PWR_GPIO_BIT_14 ((uint32_t)0x00004000) 00213 #define LL_PWR_GPIO_BIT_15 ((uint32_t)0x00008000) 00214 /** 00215 * @} 00216 */ 00217 00218 /** 00219 * @} 00220 */ 00221 00222 /* Exported macro ------------------------------------------------------------*/ 00223 /** @defgroup PWR_LL_Exported_Macros PWR Exported Macros 00224 * @{ 00225 */ 00226 00227 /** @defgroup PWR_LL_EM_WRITE_READ Common Write and read registers Macros 00228 * @{ 00229 */ 00230 00231 /** 00232 * @brief Write a value in PWR register 00233 * @param __REG__ Register to be written 00234 * @param __VALUE__ Value to be written in the register 00235 * @retval None 00236 */ 00237 #define LL_PWR_WriteReg(__REG__, __VALUE__) WRITE_REG(PWR->__REG__, (__VALUE__)) 00238 00239 /** 00240 * @brief Read a value in PWR register 00241 * @param __REG__ Register to be read 00242 * @retval Register value 00243 */ 00244 #define LL_PWR_ReadReg(__REG__) READ_REG(PWR->__REG__) 00245 /** 00246 * @} 00247 */ 00248 00249 /** 00250 * @} 00251 */ 00252 00253 00254 /* Exported functions --------------------------------------------------------*/ 00255 /** @defgroup PWR_LL_Exported_Functions PWR Exported Functions 00256 * @{ 00257 */ 00258 00259 /** @defgroup PWR_LL_EF_Configuration Configuration 00260 * @{ 00261 */ 00262 00263 /** 00264 * @brief Switch the regulator from main mode to low-power mode 00265 * @rmtoll CR1 LPR LL_PWR_EnableLowPowerRunMode 00266 * @retval None 00267 */ 00268 __STATIC_INLINE void LL_PWR_EnableLowPowerRunMode(void) 00269 { 00270 SET_BIT(PWR->CR1, PWR_CR1_LPR); 00271 } 00272 00273 /** 00274 * @brief Switch the regulator from low-power mode to main mode 00275 * @rmtoll CR1 LPR LL_PWR_DisableLowPowerRunMode 00276 * @retval None 00277 */ 00278 __STATIC_INLINE void LL_PWR_DisableLowPowerRunMode(void) 00279 { 00280 CLEAR_BIT(PWR->CR1, PWR_CR1_LPR); 00281 } 00282 00283 /** 00284 * @brief Check if the regulator is in low-power mode 00285 * @rmtoll CR1 LPR LL_PWR_IsEnabledLowPowerRunMode 00286 * @retval State of bit (1 or 0). 00287 */ 00288 __STATIC_INLINE uint32_t LL_PWR_IsEnabledLowPowerRunMode(void) 00289 { 00290 return (READ_BIT(PWR->CR1, PWR_CR1_LPR) == (PWR_CR1_LPR)); 00291 } 00292 00293 /** 00294 * @brief Set the main internal regulator output voltage 00295 * @rmtoll CR1 VOS LL_PWR_SetRegulVoltageScaling 00296 * @param VoltageScaling This parameter can be one of the following values: 00297 * @arg @ref LL_PWR_REGU_VOLTAGE_SCALE1 00298 * @arg @ref LL_PWR_REGU_VOLTAGE_SCALE2 00299 * @retval None 00300 */ 00301 __STATIC_INLINE void LL_PWR_SetRegulVoltageScaling(uint32_t VoltageScaling) 00302 { 00303 MODIFY_REG(PWR->CR1, PWR_CR1_VOS, VoltageScaling); 00304 } 00305 00306 /** 00307 * @brief Get the main internal regulator output voltage 00308 * @rmtoll CR1 VOS LL_PWR_GetRegulVoltageScaling 00309 * @retval Returned value can be one of the following values: 00310 * @arg @ref LL_PWR_REGU_VOLTAGE_SCALE1 00311 * @arg @ref LL_PWR_REGU_VOLTAGE_SCALE2 00312 */ 00313 __STATIC_INLINE uint32_t LL_PWR_GetRegulVoltageScaling(void) 00314 { 00315 return (uint32_t)(READ_BIT(PWR->CR1, PWR_CR1_VOS)); 00316 } 00317 00318 /** 00319 * @brief Enable access to the backup domain 00320 * @rmtoll CR1 DBP LL_PWR_EnableBkUpAccess 00321 * @retval None 00322 */ 00323 __STATIC_INLINE void LL_PWR_EnableBkUpAccess(void) 00324 { 00325 SET_BIT(PWR->CR1, PWR_CR1_DBP); 00326 } 00327 00328 /** 00329 * @brief Disable access to the backup domain 00330 * @rmtoll CR1 DBP LL_PWR_DisableBkUpAccess 00331 * @retval None 00332 */ 00333 __STATIC_INLINE void LL_PWR_DisableBkUpAccess(void) 00334 { 00335 CLEAR_BIT(PWR->CR1, PWR_CR1_DBP); 00336 } 00337 00338 /** 00339 * @brief Check if the backup domain is enabled 00340 * @rmtoll CR1 DBP LL_PWR_IsEnabledBkUpAccess 00341 * @retval State of bit (1 or 0). 00342 */ 00343 __STATIC_INLINE uint32_t LL_PWR_IsEnabledBkUpAccess(void) 00344 { 00345 return (READ_BIT(PWR->CR1, PWR_CR1_DBP) == (PWR_CR1_DBP)); 00346 } 00347 00348 /** 00349 * @brief Set Low-Power mode 00350 * @rmtoll CR1 LPMS LL_PWR_SetPowerMode 00351 * @param LowPowerMode This parameter can be one of the following values: 00352 * @arg @ref LL_PWR_MODE_STOP1_MAIN_REGU 00353 * @arg @ref LL_PWR_MODE_STOP1_LP_REGU 00354 * @arg @ref LL_PWR_MODE_STOP2 00355 * @arg @ref LL_PWR_MODE_STANDBY 00356 * @arg @ref LL_PWR_MODE_SHUTDOWN 00357 * @retval None 00358 */ 00359 __STATIC_INLINE void LL_PWR_SetPowerMode(uint32_t LowPowerMode) 00360 { 00361 MODIFY_REG(PWR->CR1, PWR_CR1_LPMS, LowPowerMode); 00362 } 00363 00364 /** 00365 * @brief Get Low-Power mode 00366 * @rmtoll CR1 LPMS LL_PWR_GetPowerMode 00367 * @retval Returned value can be one of the following values: 00368 * @arg @ref LL_PWR_MODE_STOP1_MAIN_REGU 00369 * @arg @ref LL_PWR_MODE_STOP1_LP_REGU 00370 * @arg @ref LL_PWR_MODE_STOP2 00371 * @arg @ref LL_PWR_MODE_STANDBY 00372 * @arg @ref LL_PWR_MODE_SHUTDOWN 00373 */ 00374 __STATIC_INLINE uint32_t LL_PWR_GetPowerMode(void) 00375 { 00376 return (uint32_t)(READ_BIT(PWR->CR1, PWR_CR1_LPMS)); 00377 } 00378 00379 #if defined(USB_OTG_FS) 00380 /** 00381 * @brief Enable VDDUSB supply 00382 * @rmtoll CR2 USV LL_PWR_EnableVddUSB 00383 * @retval None 00384 */ 00385 __STATIC_INLINE void LL_PWR_EnableVddUSB(void) 00386 { 00387 SET_BIT(PWR->CR2, PWR_CR2_USV); 00388 } 00389 #endif /* USB_OTG_FS */ 00390 00391 #if defined(USB_OTG_FS) 00392 /** 00393 * @brief Disable VDDUSB supply 00394 * @rmtoll CR2 USV LL_PWR_DisableVddUSB 00395 * @retval None 00396 */ 00397 __STATIC_INLINE void LL_PWR_DisableVddUSB(void) 00398 { 00399 CLEAR_BIT(PWR->CR2, PWR_CR2_USV); 00400 } 00401 #endif /* USB_OTG_FS */ 00402 00403 #if defined(USB_OTG_FS) 00404 /** 00405 * @brief Check if VDDUSB supply is enabled 00406 * @rmtoll CR2 USV LL_PWR_IsEnabledVddUSB 00407 * @retval State of bit (1 or 0). 00408 */ 00409 __STATIC_INLINE uint32_t LL_PWR_IsEnabledVddUSB(void) 00410 { 00411 return (READ_BIT(PWR->CR2, PWR_CR2_USV) == (PWR_CR2_USV)); 00412 } 00413 #endif /* USB_OTG_FS */ 00414 00415 /** 00416 * @brief Enable VDDIO2 supply 00417 * @rmtoll CR2 IOSV LL_PWR_EnableVddIO2 00418 * @retval None 00419 */ 00420 __STATIC_INLINE void LL_PWR_EnableVddIO2(void) 00421 { 00422 SET_BIT(PWR->CR2, PWR_CR2_IOSV); 00423 } 00424 00425 /** 00426 * @brief Disable VDDIO2 supply 00427 * @rmtoll CR2 IOSV LL_PWR_DisableVddIO2 00428 * @retval None 00429 */ 00430 __STATIC_INLINE void LL_PWR_DisableVddIO2(void) 00431 { 00432 CLEAR_BIT(PWR->CR2, PWR_CR2_IOSV); 00433 } 00434 00435 /** 00436 * @brief Check if VDDIO2 supply is enabled 00437 * @rmtoll CR2 IOSV LL_PWR_IsEnabledVddIO2 00438 * @retval State of bit (1 or 0). 00439 */ 00440 __STATIC_INLINE uint32_t LL_PWR_IsEnabledVddIO2(void) 00441 { 00442 return (READ_BIT(PWR->CR2, PWR_CR2_IOSV) == (PWR_CR2_IOSV)); 00443 } 00444 00445 /** 00446 * @brief Enable the Power Voltage Monitoring on a peripheral 00447 * CR2 PVME1 LL_PWR_EnablePVM\n 00448 * CR2 PVME2 LL_PWR_EnablePVM\n 00449 * CR2 PVME3 LL_PWR_EnablePVM\n 00450 * CR2 PVME4 LL_PWR_EnablePVM 00451 * @param PeriphVoltage This parameter can be one of the following values: 00452 * @arg @ref LL_PWR_PVM_VDDUSB_1_2V (*) 00453 * @arg @ref LL_PWR_PVM_VDDIO2_0_9V 00454 * @arg @ref LL_PWR_PVM_VDDA_1_62V 00455 * @arg @ref LL_PWR_PVM_VDDA_2_2V 00456 * (*) value not defined in all devices. 00457 * @retval None 00458 */ 00459 __STATIC_INLINE void LL_PWR_EnablePVM(uint32_t PeriphVoltage) 00460 { 00461 SET_BIT(PWR->CR2, PeriphVoltage); 00462 } 00463 00464 /** 00465 * @brief Disable the Power Voltage Monitoring on a peripheral 00466 * @rmtoll CR2 PVME1 LL_PWR_DisablePVM\n 00467 * CR2 PVME2 LL_PWR_DisablePVM\n 00468 * CR2 PVME3 LL_PWR_DisablePVM\n 00469 * CR2 PVME4 LL_PWR_DisablePVM 00470 * @param PeriphVoltage This parameter can be one of the following values: 00471 * @arg @ref LL_PWR_PVM_VDDUSB_1_2V (*) 00472 * @arg @ref LL_PWR_PVM_VDDIO2_0_9V 00473 * @arg @ref LL_PWR_PVM_VDDA_1_62V 00474 * @arg @ref LL_PWR_PVM_VDDA_2_2V 00475 * (*) value not defined in all devices. 00476 * @retval None 00477 */ 00478 __STATIC_INLINE void LL_PWR_DisablePVM(uint32_t PeriphVoltage) 00479 { 00480 CLEAR_BIT(PWR->CR2, PeriphVoltage); 00481 } 00482 00483 /** 00484 * @brief Check if Power Voltage Monitoring is enabled on a peripheral 00485 * @rmtoll CR2 PVME1 LL_PWR_IsEnabledPVM\n 00486 * CR2 PVME2 LL_PWR_IsEnabledPVM\n 00487 * CR2 PVME3 LL_PWR_IsEnabledPVM\n 00488 * CR2 PVME4 LL_PWR_IsEnabledPVM 00489 * @param PeriphVoltage This parameter can be one of the following values: 00490 * @arg @ref LL_PWR_PVM_VDDUSB_1_2V (*) 00491 * @arg @ref LL_PWR_PVM_VDDIO2_0_9V 00492 * @arg @ref LL_PWR_PVM_VDDA_1_62V 00493 * @arg @ref LL_PWR_PVM_VDDA_2_2V 00494 * (*) value not defined in all devices. 00495 * @retval State of bit (1 or 0). 00496 */ 00497 __STATIC_INLINE uint32_t LL_PWR_IsEnabledPVM(uint32_t PeriphVoltage) 00498 { 00499 return (READ_BIT(PWR->CR2, PeriphVoltage) == (PeriphVoltage)); 00500 } 00501 00502 /** 00503 * @brief Configure the voltage threshold detected by the Power Voltage Detector 00504 * @rmtoll CR2 PLS LL_PWR_SetPVDLevel 00505 * @param PVDLevel This parameter can be one of the following values: 00506 * @arg @ref LL_PWR_PVDLEVEL_0 00507 * @arg @ref LL_PWR_PVDLEVEL_1 00508 * @arg @ref LL_PWR_PVDLEVEL_2 00509 * @arg @ref LL_PWR_PVDLEVEL_3 00510 * @arg @ref LL_PWR_PVDLEVEL_4 00511 * @arg @ref LL_PWR_PVDLEVEL_5 00512 * @arg @ref LL_PWR_PVDLEVEL_6 00513 * @arg @ref LL_PWR_PVDLEVEL_7 00514 * @retval None 00515 */ 00516 __STATIC_INLINE void LL_PWR_SetPVDLevel(uint32_t PVDLevel) 00517 { 00518 MODIFY_REG(PWR->CR2, PWR_CR2_PLS, PVDLevel); 00519 } 00520 00521 /** 00522 * @brief Get the voltage threshold detection 00523 * @rmtoll CR2 PLS LL_PWR_GetPVDLevel 00524 * @retval Returned value can be one of the following values: 00525 * @arg @ref LL_PWR_PVDLEVEL_0 00526 * @arg @ref LL_PWR_PVDLEVEL_1 00527 * @arg @ref LL_PWR_PVDLEVEL_2 00528 * @arg @ref LL_PWR_PVDLEVEL_3 00529 * @arg @ref LL_PWR_PVDLEVEL_4 00530 * @arg @ref LL_PWR_PVDLEVEL_5 00531 * @arg @ref LL_PWR_PVDLEVEL_6 00532 * @arg @ref LL_PWR_PVDLEVEL_7 00533 */ 00534 __STATIC_INLINE uint32_t LL_PWR_GetPVDLevel(void) 00535 { 00536 return (uint32_t)(READ_BIT(PWR->CR2, PWR_CR2_PLS)); 00537 } 00538 00539 /** 00540 * @brief Enable Power Voltage Detector 00541 * @rmtoll CR2 PVDE LL_PWR_EnablePVD 00542 * @retval None 00543 */ 00544 __STATIC_INLINE void LL_PWR_EnablePVD(void) 00545 { 00546 SET_BIT(PWR->CR2, PWR_CR2_PVDE); 00547 } 00548 00549 /** 00550 * @brief Disable Power Voltage Detector 00551 * @rmtoll CR2 PVDE LL_PWR_DisablePVD 00552 * @retval None 00553 */ 00554 __STATIC_INLINE void LL_PWR_DisablePVD(void) 00555 { 00556 CLEAR_BIT(PWR->CR2, PWR_CR2_PVDE); 00557 } 00558 00559 /** 00560 * @brief Check if Power Voltage Detector is enabled 00561 * @rmtoll CR2 PVDE LL_PWR_IsEnabledPVD 00562 * @retval State of bit (1 or 0). 00563 */ 00564 __STATIC_INLINE uint32_t LL_PWR_IsEnabledPVD(void) 00565 { 00566 return (READ_BIT(PWR->CR2, PWR_CR2_PVDE) == (PWR_CR2_PVDE)); 00567 } 00568 00569 /** 00570 * @brief Enable Internal Wake-up line 00571 * @rmtoll CR3 EIWF LL_PWR_EnableInternWU 00572 * @retval None 00573 */ 00574 __STATIC_INLINE void LL_PWR_EnableInternWU(void) 00575 { 00576 SET_BIT(PWR->CR3, PWR_CR3_EIWF); 00577 } 00578 00579 /** 00580 * @brief Disable Internal Wake-up line 00581 * @rmtoll CR3 EIWF LL_PWR_DisableInternWU 00582 * @retval None 00583 */ 00584 __STATIC_INLINE void LL_PWR_DisableInternWU(void) 00585 { 00586 CLEAR_BIT(PWR->CR3, PWR_CR3_EIWF); 00587 } 00588 00589 /** 00590 * @brief Check if Internal Wake-up line is enabled 00591 * @rmtoll CR3 EIWF LL_PWR_IsEnabledInternWU 00592 * @retval State of bit (1 or 0). 00593 */ 00594 __STATIC_INLINE uint32_t LL_PWR_IsEnabledInternWU(void) 00595 { 00596 return (READ_BIT(PWR->CR3, PWR_CR3_EIWF) == (PWR_CR3_EIWF)); 00597 } 00598 00599 /** 00600 * @brief Enable pull-up and pull-down configuration 00601 * @rmtoll CR3 APC LL_PWR_EnablePUPDCfg 00602 * @retval None 00603 */ 00604 __STATIC_INLINE void LL_PWR_EnablePUPDCfg(void) 00605 { 00606 SET_BIT(PWR->CR3, PWR_CR3_APC); 00607 } 00608 00609 /** 00610 * @brief Disable pull-up and pull-down configuration 00611 * @rmtoll CR3 APC LL_PWR_DisablePUPDCfg 00612 * @retval None 00613 */ 00614 __STATIC_INLINE void LL_PWR_DisablePUPDCfg(void) 00615 { 00616 CLEAR_BIT(PWR->CR3, PWR_CR3_APC); 00617 } 00618 00619 /** 00620 * @brief Check if pull-up and pull-down configuration is enabled 00621 * @rmtoll CR3 APC LL_PWR_IsEnabledPUPDCfg 00622 * @retval State of bit (1 or 0). 00623 */ 00624 __STATIC_INLINE uint32_t LL_PWR_IsEnabledPUPDCfg(void) 00625 { 00626 return (READ_BIT(PWR->CR3, PWR_CR3_APC) == (PWR_CR3_APC)); 00627 } 00628 00629 /** 00630 * @brief Enable SRAM2 content retention in Standby mode 00631 * @rmtoll CR3 RRS LL_PWR_EnableSRAM2Retention 00632 * @retval None 00633 */ 00634 __STATIC_INLINE void LL_PWR_EnableSRAM2Retention(void) 00635 { 00636 SET_BIT(PWR->CR3, PWR_CR3_RRS); 00637 } 00638 00639 /** 00640 * @brief Disable SRAM2 content retention in Standby mode 00641 * @rmtoll CR3 RRS LL_PWR_DisableSRAM2Retention 00642 * @retval None 00643 */ 00644 __STATIC_INLINE void LL_PWR_DisableSRAM2Retention(void) 00645 { 00646 CLEAR_BIT(PWR->CR3, PWR_CR3_RRS); 00647 } 00648 00649 /** 00650 * @brief Check if SRAM2 content retention in Standby mode is enabled 00651 * @rmtoll CR3 RRS LL_PWR_IsEnabledSRAM2Retention 00652 * @retval State of bit (1 or 0). 00653 */ 00654 __STATIC_INLINE uint32_t LL_PWR_IsEnabledSRAM2Retention(void) 00655 { 00656 return (READ_BIT(PWR->CR3, PWR_CR3_RRS) == (PWR_CR3_RRS)); 00657 } 00658 00659 /** 00660 * @brief Enable the WakeUp PINx functionality 00661 * @rmtoll CR3 EWUP1 LL_PWR_EnableWakeUpPin\n 00662 * CR3 EWUP2 LL_PWR_EnableWakeUpPin\n 00663 * CR3 EWUP3 LL_PWR_EnableWakeUpPin\n 00664 * CR3 EWUP4 LL_PWR_EnableWakeUpPin\n 00665 * CR3 EWUP5 LL_PWR_EnableWakeUpPin 00666 * @param WakeUpPin This parameter can be one of the following values: 00667 * @arg @ref LL_PWR_WAKEUP_PIN1 00668 * @arg @ref LL_PWR_WAKEUP_PIN2 00669 * @arg @ref LL_PWR_WAKEUP_PIN3 00670 * @arg @ref LL_PWR_WAKEUP_PIN4 00671 * @arg @ref LL_PWR_WAKEUP_PIN5 00672 * @retval None 00673 */ 00674 __STATIC_INLINE void LL_PWR_EnableWakeUpPin(uint32_t WakeUpPin) 00675 { 00676 SET_BIT(PWR->CR3, WakeUpPin); 00677 } 00678 00679 /** 00680 * @brief Disable the WakeUp PINx functionality 00681 * @rmtoll CR3 EWUP1 LL_PWR_DisableWakeUpPin\n 00682 * CR3 EWUP2 LL_PWR_DisableWakeUpPin\n 00683 * CR3 EWUP3 LL_PWR_DisableWakeUpPin\n 00684 * CR3 EWUP4 LL_PWR_DisableWakeUpPin\n 00685 * CR3 EWUP5 LL_PWR_DisableWakeUpPin 00686 * @param WakeUpPin This parameter can be one of the following values: 00687 * @arg @ref LL_PWR_WAKEUP_PIN1 00688 * @arg @ref LL_PWR_WAKEUP_PIN2 00689 * @arg @ref LL_PWR_WAKEUP_PIN3 00690 * @arg @ref LL_PWR_WAKEUP_PIN4 00691 * @arg @ref LL_PWR_WAKEUP_PIN5 00692 * @retval None 00693 */ 00694 __STATIC_INLINE void LL_PWR_DisableWakeUpPin(uint32_t WakeUpPin) 00695 { 00696 CLEAR_BIT(PWR->CR3, WakeUpPin); 00697 } 00698 00699 /** 00700 * @brief Check if the WakeUp PINx functionality is enabled 00701 * @rmtoll CR3 EWUP1 LL_PWR_IsEnabledWakeUpPin\n 00702 * CR3 EWUP2 LL_PWR_IsEnabledWakeUpPin\n 00703 * CR3 EWUP3 LL_PWR_IsEnabledWakeUpPin\n 00704 * CR3 EWUP4 LL_PWR_IsEnabledWakeUpPin\n 00705 * CR3 EWUP5 LL_PWR_IsEnabledWakeUpPin 00706 * @param WakeUpPin This parameter can be one of the following values: 00707 * @arg @ref LL_PWR_WAKEUP_PIN1 00708 * @arg @ref LL_PWR_WAKEUP_PIN2 00709 * @arg @ref LL_PWR_WAKEUP_PIN3 00710 * @arg @ref LL_PWR_WAKEUP_PIN4 00711 * @arg @ref LL_PWR_WAKEUP_PIN5 00712 * @retval State of bit (1 or 0). 00713 */ 00714 __STATIC_INLINE uint32_t LL_PWR_IsEnabledWakeUpPin(uint32_t WakeUpPin) 00715 { 00716 return (READ_BIT(PWR->CR3, WakeUpPin) == (WakeUpPin)); 00717 } 00718 00719 /** 00720 * @brief Set the resistor impedance 00721 * @rmtoll CR4 VBRS LL_PWR_SetBattChargResistor 00722 * @param Resistor This parameter can be one of the following values: 00723 * @arg @ref LL_PWR_BATT_CHARG_RESISTOR_5K 00724 * @arg @ref LL_PWR_BATT_CHARGRESISTOR_1_5K 00725 * @retval None 00726 */ 00727 __STATIC_INLINE void LL_PWR_SetBattChargResistor(uint32_t Resistor) 00728 { 00729 MODIFY_REG(PWR->CR4, PWR_CR4_VBRS, Resistor); 00730 } 00731 00732 /** 00733 * @brief Get the resistor impedance 00734 * @rmtoll CR4 VBRS LL_PWR_GetBattChargResistor 00735 * @retval Returned value can be one of the following values: 00736 * @arg @ref LL_PWR_BATT_CHARG_RESISTOR_5K 00737 * @arg @ref LL_PWR_BATT_CHARGRESISTOR_1_5K 00738 */ 00739 __STATIC_INLINE uint32_t LL_PWR_GetBattChargResistor(void) 00740 { 00741 return (uint32_t)(READ_BIT(PWR->CR4, PWR_CR4_VBRS)); 00742 } 00743 00744 /** 00745 * @brief Enable battery charging 00746 * @rmtoll CR4 VBE LL_PWR_EnableBatteryCharging 00747 * @retval None 00748 */ 00749 __STATIC_INLINE void LL_PWR_EnableBatteryCharging(void) 00750 { 00751 SET_BIT(PWR->CR4, PWR_CR4_VBE); 00752 } 00753 00754 /** 00755 * @brief Disable battery charging 00756 * @rmtoll CR4 VBE LL_PWR_DisableBatteryCharging 00757 * @retval None 00758 */ 00759 __STATIC_INLINE void LL_PWR_DisableBatteryCharging(void) 00760 { 00761 CLEAR_BIT(PWR->CR4, PWR_CR4_VBE); 00762 } 00763 00764 /** 00765 * @brief Check if battery charging is enabled 00766 * @rmtoll CR4 VBE LL_PWR_IsEnabledBatteryCharging 00767 * @retval State of bit (1 or 0). 00768 */ 00769 __STATIC_INLINE uint32_t LL_PWR_IsEnabledBatteryCharging(void) 00770 { 00771 return (READ_BIT(PWR->CR4, PWR_CR4_VBE) == (PWR_CR4_VBE)); 00772 } 00773 00774 /** 00775 * @brief Set the Wake-Up pin polarity low for the event detection 00776 * @rmtoll CR4 WP1 LL_PWR_SetWakeUpPinPolarityLow\n 00777 * CR4 WP2 LL_PWR_SetWakeUpPinPolarityLow\n 00778 * CR4 WP3 LL_PWR_SetWakeUpPinPolarityLow\n 00779 * CR4 WP4 LL_PWR_SetWakeUpPinPolarityLow\n 00780 * CR4 WP5 LL_PWR_SetWakeUpPinPolarityLow 00781 * @param WakeUpPin This parameter can be one of the following values: 00782 * @arg @ref LL_PWR_WAKEUP_PIN1 00783 * @arg @ref LL_PWR_WAKEUP_PIN2 00784 * @arg @ref LL_PWR_WAKEUP_PIN3 00785 * @arg @ref LL_PWR_WAKEUP_PIN4 00786 * @arg @ref LL_PWR_WAKEUP_PIN5 00787 * @retval None 00788 */ 00789 __STATIC_INLINE void LL_PWR_SetWakeUpPinPolarityLow(uint32_t WakeUpPin) 00790 { 00791 SET_BIT(PWR->CR4, WakeUpPin); 00792 } 00793 00794 /** 00795 * @brief Set the Wake-Up pin polarity high for the event detection 00796 * @rmtoll CR4 WP1 LL_PWR_SetWakeUpPinPolarityHigh\n 00797 * CR4 WP2 LL_PWR_SetWakeUpPinPolarityHigh\n 00798 * CR4 WP3 LL_PWR_SetWakeUpPinPolarityHigh\n 00799 * CR4 WP4 LL_PWR_SetWakeUpPinPolarityHigh\n 00800 * CR4 WP5 LL_PWR_SetWakeUpPinPolarityHigh 00801 * @param WakeUpPin This parameter can be one of the following values: 00802 * @arg @ref LL_PWR_WAKEUP_PIN1 00803 * @arg @ref LL_PWR_WAKEUP_PIN2 00804 * @arg @ref LL_PWR_WAKEUP_PIN3 00805 * @arg @ref LL_PWR_WAKEUP_PIN4 00806 * @arg @ref LL_PWR_WAKEUP_PIN5 00807 * @retval None 00808 */ 00809 __STATIC_INLINE void LL_PWR_SetWakeUpPinPolarityHigh(uint32_t WakeUpPin) 00810 { 00811 CLEAR_BIT(PWR->CR4, WakeUpPin); 00812 } 00813 00814 /** 00815 * @brief Get the Wake-Up pin polarity for the event detection 00816 * @rmtoll CR4 WP1 LL_PWR_IsWakeUpPinPolarityLow\n 00817 * CR4 WP2 LL_PWR_IsWakeUpPinPolarityLow\n 00818 * CR4 WP3 LL_PWR_IsWakeUpPinPolarityLow\n 00819 * CR4 WP4 LL_PWR_IsWakeUpPinPolarityLow\n 00820 * CR4 WP5 LL_PWR_IsWakeUpPinPolarityLow 00821 * @param WakeUpPin This parameter can be one of the following values: 00822 * @arg @ref LL_PWR_WAKEUP_PIN1 00823 * @arg @ref LL_PWR_WAKEUP_PIN2 00824 * @arg @ref LL_PWR_WAKEUP_PIN3 00825 * @arg @ref LL_PWR_WAKEUP_PIN4 00826 * @arg @ref LL_PWR_WAKEUP_PIN5 00827 * @retval State of bit (1 or 0). 00828 */ 00829 __STATIC_INLINE uint32_t LL_PWR_IsWakeUpPinPolarityLow(uint32_t WakeUpPin) 00830 { 00831 return (READ_BIT(PWR->CR4, WakeUpPin) == (WakeUpPin)); 00832 } 00833 00834 /** 00835 * @brief Enable GPIO pull-up state in Standby and Shutdown modes 00836 * @rmtoll PUCRA PU0-15 LL_PWR_EnableGPIOPullUp\n 00837 * PUCRB PU0-15 LL_PWR_EnableGPIOPullUp\n 00838 * PUCRC PU0-15 LL_PWR_EnableGPIOPullUp\n 00839 * PUCRD PU0-15 LL_PWR_EnableGPIOPullUp\n 00840 * PUCRE PU0-15 LL_PWR_EnableGPIOPullUp\n 00841 * PUCRF PU0-15 LL_PWR_EnableGPIOPullUp\n 00842 * PUCRG PU0-15 LL_PWR_EnableGPIOPullUp\n 00843 * PUCRH PU0-1 LL_PWR_EnableGPIOPullUp 00844 * @param GPIO This parameter can be one of the following values: 00845 * @arg @ref LL_PWR_GPIO_A 00846 * @arg @ref LL_PWR_GPIO_B 00847 * @arg @ref LL_PWR_GPIO_C 00848 * @arg @ref LL_PWR_GPIO_D 00849 * @arg @ref LL_PWR_GPIO_E 00850 * @arg @ref LL_PWR_GPIO_F 00851 * @arg @ref LL_PWR_GPIO_G 00852 * @arg @ref LL_PWR_GPIO_H 00853 * @param GPIONumber This parameter can be one of the following values: 00854 * @arg @ref LL_PWR_GPIO_BIT_0 00855 * @arg @ref LL_PWR_GPIO_BIT_1 00856 * @arg @ref LL_PWR_GPIO_BIT_2 00857 * @arg @ref LL_PWR_GPIO_BIT_3 00858 * @arg @ref LL_PWR_GPIO_BIT_4 00859 * @arg @ref LL_PWR_GPIO_BIT_5 00860 * @arg @ref LL_PWR_GPIO_BIT_6 00861 * @arg @ref LL_PWR_GPIO_BIT_7 00862 * @arg @ref LL_PWR_GPIO_BIT_8 00863 * @arg @ref LL_PWR_GPIO_BIT_9 00864 * @arg @ref LL_PWR_GPIO_BIT_10 00865 * @arg @ref LL_PWR_GPIO_BIT_11 00866 * @arg @ref LL_PWR_GPIO_BIT_12 00867 * @arg @ref LL_PWR_GPIO_BIT_13 00868 * @arg @ref LL_PWR_GPIO_BIT_14 00869 * @arg @ref LL_PWR_GPIO_BIT_15 00870 * @retval None 00871 */ 00872 __STATIC_INLINE void LL_PWR_EnableGPIOPullUp(uint32_t GPIO, uint32_t GPIONumber) 00873 { 00874 SET_BIT(*((uint32_t*)GPIO), GPIONumber); 00875 } 00876 00877 /** 00878 * @brief Disable GPIO pull-up state in Standby and Shutdown modes 00879 * @rmtoll PUCRA PU0-15 LL_PWR_DisableGPIOPullUp\n 00880 * PUCRB PU0-15 LL_PWR_DisableGPIOPullUp\n 00881 * PUCRC PU0-15 LL_PWR_DisableGPIOPullUp\n 00882 * PUCRD PU0-15 LL_PWR_DisableGPIOPullUp\n 00883 * PUCRE PU0-15 LL_PWR_DisableGPIOPullUp\n 00884 * PUCRF PU0-15 LL_PWR_DisableGPIOPullUp\n 00885 * PUCRG PU0-15 LL_PWR_DisableGPIOPullUp\n 00886 * PUCRH PU0-1 LL_PWR_DisableGPIOPullUp 00887 * @param GPIO This parameter can be one of the following values: 00888 * @arg @ref LL_PWR_GPIO_A 00889 * @arg @ref LL_PWR_GPIO_B 00890 * @arg @ref LL_PWR_GPIO_C 00891 * @arg @ref LL_PWR_GPIO_D 00892 * @arg @ref LL_PWR_GPIO_E 00893 * @arg @ref LL_PWR_GPIO_F 00894 * @arg @ref LL_PWR_GPIO_G 00895 * @arg @ref LL_PWR_GPIO_H 00896 * @param GPIONumber This parameter can be one of the following values: 00897 * @arg @ref LL_PWR_GPIO_BIT_0 00898 * @arg @ref LL_PWR_GPIO_BIT_1 00899 * @arg @ref LL_PWR_GPIO_BIT_2 00900 * @arg @ref LL_PWR_GPIO_BIT_3 00901 * @arg @ref LL_PWR_GPIO_BIT_4 00902 * @arg @ref LL_PWR_GPIO_BIT_5 00903 * @arg @ref LL_PWR_GPIO_BIT_6 00904 * @arg @ref LL_PWR_GPIO_BIT_7 00905 * @arg @ref LL_PWR_GPIO_BIT_8 00906 * @arg @ref LL_PWR_GPIO_BIT_9 00907 * @arg @ref LL_PWR_GPIO_BIT_10 00908 * @arg @ref LL_PWR_GPIO_BIT_11 00909 * @arg @ref LL_PWR_GPIO_BIT_12 00910 * @arg @ref LL_PWR_GPIO_BIT_13 00911 * @arg @ref LL_PWR_GPIO_BIT_14 00912 * @arg @ref LL_PWR_GPIO_BIT_15 00913 * @retval None 00914 */ 00915 __STATIC_INLINE void LL_PWR_DisableGPIOPullUp(uint32_t GPIO, uint32_t GPIONumber) 00916 { 00917 CLEAR_BIT(*((uint32_t*)GPIO), GPIONumber); 00918 } 00919 00920 /** 00921 * @brief Check if GPIO pull-up state is enabled 00922 * @rmtoll PUCRA PU0-15 LL_PWR_IsEnabledGPIOPullUp\n 00923 * PUCRB PU0-15 LL_PWR_IsEnabledGPIOPullUp\n 00924 * PUCRC PU0-15 LL_PWR_IsEnabledGPIOPullUp\n 00925 * PUCRD PU0-15 LL_PWR_IsEnabledGPIOPullUp\n 00926 * PUCRE PU0-15 LL_PWR_IsEnabledGPIOPullUp\n 00927 * PUCRF PU0-15 LL_PWR_IsEnabledGPIOPullUp\n 00928 * PUCRG PU0-15 LL_PWR_IsEnabledGPIOPullUp\n 00929 * PUCRH PU0-1 LL_PWR_IsEnabledGPIOPullUp 00930 * @param GPIO This parameter can be one of the following values: 00931 * @arg @ref LL_PWR_GPIO_A 00932 * @arg @ref LL_PWR_GPIO_B 00933 * @arg @ref LL_PWR_GPIO_C 00934 * @arg @ref LL_PWR_GPIO_D 00935 * @arg @ref LL_PWR_GPIO_E 00936 * @arg @ref LL_PWR_GPIO_F 00937 * @arg @ref LL_PWR_GPIO_G 00938 * @arg @ref LL_PWR_GPIO_H 00939 * @param GPIONumber This parameter can be one of the following values: 00940 * @arg @ref LL_PWR_GPIO_BIT_0 00941 * @arg @ref LL_PWR_GPIO_BIT_1 00942 * @arg @ref LL_PWR_GPIO_BIT_2 00943 * @arg @ref LL_PWR_GPIO_BIT_3 00944 * @arg @ref LL_PWR_GPIO_BIT_4 00945 * @arg @ref LL_PWR_GPIO_BIT_5 00946 * @arg @ref LL_PWR_GPIO_BIT_6 00947 * @arg @ref LL_PWR_GPIO_BIT_7 00948 * @arg @ref LL_PWR_GPIO_BIT_8 00949 * @arg @ref LL_PWR_GPIO_BIT_9 00950 * @arg @ref LL_PWR_GPIO_BIT_10 00951 * @arg @ref LL_PWR_GPIO_BIT_11 00952 * @arg @ref LL_PWR_GPIO_BIT_12 00953 * @arg @ref LL_PWR_GPIO_BIT_13 00954 * @arg @ref LL_PWR_GPIO_BIT_14 00955 * @arg @ref LL_PWR_GPIO_BIT_15 00956 * @retval State of bit (1 or 0). 00957 */ 00958 __STATIC_INLINE uint32_t LL_PWR_IsEnabledGPIOPullUp(uint32_t GPIO, uint32_t GPIONumber) 00959 { 00960 return(READ_BIT(*((uint32_t*)(GPIO)), GPIONumber) == (GPIONumber)); 00961 } 00962 00963 /** 00964 * @brief Enable GPIO pull-down state in Standby and Shutdown modes 00965 * @rmtoll PDCRA PD0-15 LL_PWR_EnableGPIOPullDown\n 00966 * PDCRB PD0-15 LL_PWR_EnableGPIOPullDown\n 00967 * PDCRC PD0-15 LL_PWR_EnableGPIOPullDown\n 00968 * PDCRD PD0-15 LL_PWR_EnableGPIOPullDown\n 00969 * PDCRE PD0-15 LL_PWR_EnableGPIOPullDown\n 00970 * PDCRF PD0-15 LL_PWR_EnableGPIOPullDown\n 00971 * PDCRG PD0-15 LL_PWR_EnableGPIOPullDown\n 00972 * PDCRH PD0-1 LL_PWR_EnableGPIOPullDown 00973 * @param GPIO This parameter can be one of the following values: 00974 * @arg @ref LL_PWR_GPIO_A 00975 * @arg @ref LL_PWR_GPIO_B 00976 * @arg @ref LL_PWR_GPIO_C 00977 * @arg @ref LL_PWR_GPIO_D 00978 * @arg @ref LL_PWR_GPIO_E 00979 * @arg @ref LL_PWR_GPIO_F 00980 * @arg @ref LL_PWR_GPIO_G 00981 * @arg @ref LL_PWR_GPIO_H 00982 * @param GPIONumber This parameter can be one of the following values: 00983 * @arg @ref LL_PWR_GPIO_BIT_0 00984 * @arg @ref LL_PWR_GPIO_BIT_1 00985 * @arg @ref LL_PWR_GPIO_BIT_2 00986 * @arg @ref LL_PWR_GPIO_BIT_3 00987 * @arg @ref LL_PWR_GPIO_BIT_4 00988 * @arg @ref LL_PWR_GPIO_BIT_5 00989 * @arg @ref LL_PWR_GPIO_BIT_6 00990 * @arg @ref LL_PWR_GPIO_BIT_7 00991 * @arg @ref LL_PWR_GPIO_BIT_8 00992 * @arg @ref LL_PWR_GPIO_BIT_9 00993 * @arg @ref LL_PWR_GPIO_BIT_10 00994 * @arg @ref LL_PWR_GPIO_BIT_11 00995 * @arg @ref LL_PWR_GPIO_BIT_12 00996 * @arg @ref LL_PWR_GPIO_BIT_13 00997 * @arg @ref LL_PWR_GPIO_BIT_14 00998 * @arg @ref LL_PWR_GPIO_BIT_15 00999 * @retval None 01000 */ 01001 __STATIC_INLINE void LL_PWR_EnableGPIOPullDown(uint32_t GPIO, uint32_t GPIONumber) 01002 { 01003 register uint32_t temp = (uint32_t)(GPIO) + 4; 01004 SET_BIT(*((uint32_t*)(temp)), GPIONumber); 01005 } 01006 01007 /** 01008 * @brief Disable GPIO pull-down state in Standby and Shutdown modes 01009 * @rmtoll PDCRA PD0-15 LL_PWR_DisableGPIOPullDown\n 01010 * PDCRB PD0-15 LL_PWR_DisableGPIOPullDown\n 01011 * PDCRC PD0-15 LL_PWR_DisableGPIOPullDown\n 01012 * PDCRD PD0-15 LL_PWR_DisableGPIOPullDown\n 01013 * PDCRE PD0-15 LL_PWR_DisableGPIOPullDown\n 01014 * PDCRF PD0-15 LL_PWR_DisableGPIOPullDown\n 01015 * PDCRG PD0-15 LL_PWR_DisableGPIOPullDown\n 01016 * PDCRH PD0-1 LL_PWR_DisableGPIOPullDown 01017 * @param GPIO This parameter can be one of the following values: 01018 * @arg @ref LL_PWR_GPIO_A 01019 * @arg @ref LL_PWR_GPIO_B 01020 * @arg @ref LL_PWR_GPIO_C 01021 * @arg @ref LL_PWR_GPIO_D 01022 * @arg @ref LL_PWR_GPIO_E 01023 * @arg @ref LL_PWR_GPIO_F 01024 * @arg @ref LL_PWR_GPIO_G 01025 * @arg @ref LL_PWR_GPIO_H 01026 * @param GPIONumber This parameter can be one of the following values: 01027 * @arg @ref LL_PWR_GPIO_BIT_0 01028 * @arg @ref LL_PWR_GPIO_BIT_1 01029 * @arg @ref LL_PWR_GPIO_BIT_2 01030 * @arg @ref LL_PWR_GPIO_BIT_3 01031 * @arg @ref LL_PWR_GPIO_BIT_4 01032 * @arg @ref LL_PWR_GPIO_BIT_5 01033 * @arg @ref LL_PWR_GPIO_BIT_6 01034 * @arg @ref LL_PWR_GPIO_BIT_7 01035 * @arg @ref LL_PWR_GPIO_BIT_8 01036 * @arg @ref LL_PWR_GPIO_BIT_9 01037 * @arg @ref LL_PWR_GPIO_BIT_10 01038 * @arg @ref LL_PWR_GPIO_BIT_11 01039 * @arg @ref LL_PWR_GPIO_BIT_12 01040 * @arg @ref LL_PWR_GPIO_BIT_13 01041 * @arg @ref LL_PWR_GPIO_BIT_14 01042 * @arg @ref LL_PWR_GPIO_BIT_15 01043 * @retval None 01044 */ 01045 __STATIC_INLINE void LL_PWR_DisableGPIOPullDown(uint32_t GPIO, uint32_t GPIONumber) 01046 { 01047 register uint32_t temp = (uint32_t)(GPIO) + 4; 01048 CLEAR_BIT(*((uint32_t*)(temp)), GPIONumber); 01049 } 01050 01051 /** 01052 * @brief Check if GPIO pull-down state is enabled 01053 * @rmtoll PDCRA PD0-15 LL_PWR_IsEnabledGPIOPullDown\n 01054 * PDCRB PD0-15 LL_PWR_IsEnabledGPIOPullDown\n 01055 * PDCRC PD0-15 LL_PWR_IsEnabledGPIOPullDown\n 01056 * PDCRD PD0-15 LL_PWR_IsEnabledGPIOPullDown\n 01057 * PDCRE PD0-15 LL_PWR_IsEnabledGPIOPullDown\n 01058 * PDCRF PD0-15 LL_PWR_IsEnabledGPIOPullDown\n 01059 * PDCRG PD0-15 LL_PWR_IsEnabledGPIOPullDown\n 01060 * PDCRH PD0-1 LL_PWR_IsEnabledGPIOPullDown 01061 * @param GPIO This parameter can be one of the following values: 01062 * @arg @ref LL_PWR_GPIO_A 01063 * @arg @ref LL_PWR_GPIO_B 01064 * @arg @ref LL_PWR_GPIO_C 01065 * @arg @ref LL_PWR_GPIO_D 01066 * @arg @ref LL_PWR_GPIO_E 01067 * @arg @ref LL_PWR_GPIO_F 01068 * @arg @ref LL_PWR_GPIO_G 01069 * @arg @ref LL_PWR_GPIO_H 01070 * @param GPIONumber This parameter can be one of the following values: 01071 * @arg @ref LL_PWR_GPIO_BIT_0 01072 * @arg @ref LL_PWR_GPIO_BIT_1 01073 * @arg @ref LL_PWR_GPIO_BIT_2 01074 * @arg @ref LL_PWR_GPIO_BIT_3 01075 * @arg @ref LL_PWR_GPIO_BIT_4 01076 * @arg @ref LL_PWR_GPIO_BIT_5 01077 * @arg @ref LL_PWR_GPIO_BIT_6 01078 * @arg @ref LL_PWR_GPIO_BIT_7 01079 * @arg @ref LL_PWR_GPIO_BIT_8 01080 * @arg @ref LL_PWR_GPIO_BIT_9 01081 * @arg @ref LL_PWR_GPIO_BIT_10 01082 * @arg @ref LL_PWR_GPIO_BIT_11 01083 * @arg @ref LL_PWR_GPIO_BIT_12 01084 * @arg @ref LL_PWR_GPIO_BIT_13 01085 * @arg @ref LL_PWR_GPIO_BIT_14 01086 * @arg @ref LL_PWR_GPIO_BIT_15 01087 * @retval State of bit (1 or 0). 01088 */ 01089 __STATIC_INLINE uint32_t LL_PWR_IsEnabledGPIOPullDown(uint32_t GPIO, uint32_t GPIONumber) 01090 { 01091 register uint32_t temp = (uint32_t)(GPIO) + 4; 01092 return(READ_BIT(*((uint32_t*)(temp)), GPIONumber) == (GPIONumber)); 01093 } 01094 01095 /** 01096 * @} 01097 */ 01098 01099 /** @defgroup PWR_LL_EF_FLAG_Management FLAG_Management 01100 * @{ 01101 */ 01102 01103 /** 01104 * @brief Get Internal Wake-up line Flag 01105 * @rmtoll SR1 WUFI LL_PWR_IsActiveFlag_InternWU 01106 * @retval State of bit (1 or 0). 01107 */ 01108 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_InternWU(void) 01109 { 01110 return (READ_BIT(PWR->SR1, PWR_SR1_WUFI) == (PWR_SR1_WUFI)); 01111 } 01112 01113 /** 01114 * @brief Get Stand-By Flag 01115 * @rmtoll SR1 SBF LL_PWR_IsActiveFlag_SB 01116 * @retval State of bit (1 or 0). 01117 */ 01118 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_SB(void) 01119 { 01120 return (READ_BIT(PWR->SR1, PWR_SR1_SBF) == (PWR_SR1_SBF)); 01121 } 01122 01123 /** 01124 * @brief Get Wake-up Flag 5 01125 * @rmtoll SR1 WUF5 LL_PWR_IsActiveFlag_WU5 01126 * @retval State of bit (1 or 0). 01127 */ 01128 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU5(void) 01129 { 01130 return (READ_BIT(PWR->SR1, PWR_SR1_WUF5) == (PWR_SR1_WUF5)); 01131 } 01132 01133 /** 01134 * @brief Get Wake-up Flag 4 01135 * @rmtoll SR1 WUF4 LL_PWR_IsActiveFlag_WU4 01136 * @retval State of bit (1 or 0). 01137 */ 01138 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU4(void) 01139 { 01140 return (READ_BIT(PWR->SR1, PWR_SR1_WUF4) == (PWR_SR1_WUF4)); 01141 } 01142 01143 /** 01144 * @brief Get Wake-up Flag 3 01145 * @rmtoll SR1 WUF3 LL_PWR_IsActiveFlag_WU3 01146 * @retval State of bit (1 or 0). 01147 */ 01148 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU3(void) 01149 { 01150 return (READ_BIT(PWR->SR1, PWR_SR1_WUF3) == (PWR_SR1_WUF3)); 01151 } 01152 01153 /** 01154 * @brief Get Wake-up Flag 2 01155 * @rmtoll SR1 WUF2 LL_PWR_IsActiveFlag_WU2 01156 * @retval State of bit (1 or 0). 01157 */ 01158 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU2(void) 01159 { 01160 return (READ_BIT(PWR->SR1, PWR_SR1_WUF2) == (PWR_SR1_WUF2)); 01161 } 01162 01163 /** 01164 * @brief Get Wake-up Flag 1 01165 * @rmtoll SR1 WUF1 LL_PWR_IsActiveFlag_WU1 01166 * @retval State of bit (1 or 0). 01167 */ 01168 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU1(void) 01169 { 01170 return (READ_BIT(PWR->SR1, PWR_SR1_WUF1) == (PWR_SR1_WUF1)); 01171 } 01172 01173 /** 01174 * @brief Clear Stand-By Flag 01175 * @rmtoll SCR CSBF LL_PWR_ClearFlag_SB 01176 * @retval None 01177 */ 01178 __STATIC_INLINE void LL_PWR_ClearFlag_SB(void) 01179 { 01180 WRITE_REG(PWR->SCR, PWR_SCR_CSBF); 01181 } 01182 01183 /** 01184 * @brief Clear Wake-up Flags 01185 * @rmtoll SCR CWUF LL_PWR_ClearFlag_WU 01186 * @retval None 01187 */ 01188 __STATIC_INLINE void LL_PWR_ClearFlag_WU(void) 01189 { 01190 WRITE_REG(PWR->SCR, PWR_SCR_CWUF); 01191 } 01192 01193 /** 01194 * @brief Clear Wake-up Flag 5 01195 * @rmtoll SCR CWUF5 LL_PWR_ClearFlag_WU5 01196 * @retval None 01197 */ 01198 __STATIC_INLINE void LL_PWR_ClearFlag_WU5(void) 01199 { 01200 WRITE_REG(PWR->SCR, PWR_SCR_CWUF5); 01201 } 01202 01203 /** 01204 * @brief Clear Wake-up Flag 4 01205 * @rmtoll SCR CWUF4 LL_PWR_ClearFlag_WU4 01206 * @retval None 01207 */ 01208 __STATIC_INLINE void LL_PWR_ClearFlag_WU4(void) 01209 { 01210 WRITE_REG(PWR->SCR, PWR_SCR_CWUF4); 01211 } 01212 01213 /** 01214 * @brief Clear Wake-up Flag 3 01215 * @rmtoll SCR CWUF3 LL_PWR_ClearFlag_WU3 01216 * @retval None 01217 */ 01218 __STATIC_INLINE void LL_PWR_ClearFlag_WU3(void) 01219 { 01220 WRITE_REG(PWR->SCR, PWR_SCR_CWUF3); 01221 } 01222 01223 /** 01224 * @brief Clear Wake-up Flag 2 01225 * @rmtoll SCR CWUF2 LL_PWR_ClearFlag_WU2 01226 * @retval None 01227 */ 01228 __STATIC_INLINE void LL_PWR_ClearFlag_WU2(void) 01229 { 01230 WRITE_REG(PWR->SCR, PWR_SCR_CWUF2); 01231 } 01232 01233 /** 01234 * @brief Clear Wake-up Flag 1 01235 * @rmtoll SCR CWUF1 LL_PWR_ClearFlag_WU1 01236 * @retval None 01237 */ 01238 __STATIC_INLINE void LL_PWR_ClearFlag_WU1(void) 01239 { 01240 WRITE_REG(PWR->SCR, PWR_SCR_CWUF1); 01241 } 01242 01243 /** 01244 * @brief Indicate whether VDDA voltage is below or above PVM4 threshold 01245 * @rmtoll SR2 PVMO4 LL_PWR_IsActiveFlag_PVMO4 01246 * @retval State of bit (1 or 0). 01247 */ 01248 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_PVMO4 (void) 01249 { 01250 return (READ_BIT(PWR->SR2, PWR_SR2_PVMO4) == (PWR_SR2_PVMO4)); 01251 } 01252 01253 /** 01254 * @brief Indicate whether VDDA voltage is below or above PVM3 threshold 01255 * @rmtoll SR2 PVMO3 LL_PWR_IsActiveFlag_PVMO3 01256 * @retval State of bit (1 or 0). 01257 */ 01258 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_PVMO3 (void) 01259 { 01260 return (READ_BIT(PWR->SR2, PWR_SR2_PVMO3) == (PWR_SR2_PVMO3)); 01261 } 01262 01263 /** 01264 * @brief Indicate whether VDDIO2 voltage is below or above PVM2 threshold 01265 * @rmtoll SR2 PVMO2 LL_PWR_IsActiveFlag_PVMO2 01266 * @retval State of bit (1 or 0). 01267 */ 01268 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_PVMO2 (void) 01269 { 01270 return (READ_BIT(PWR->SR2, PWR_SR2_PVMO2 ) == (PWR_SR2_PVMO2 )); 01271 } 01272 01273 #if defined(USB_OTG_FS) 01274 /** 01275 * @brief Indicate whether VDDUSB voltage is below or above PVM1 threshold 01276 * @rmtoll SR2 PVMO1 LL_PWR_IsActiveFlag_PVMO1 01277 * @retval State of bit (1 or 0). 01278 */ 01279 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_PVMO1 (void) 01280 { 01281 return (READ_BIT(PWR->SR2, PWR_SR2_PVMO1) == (PWR_SR2_PVMO1)); 01282 } 01283 #endif /* USB_OTG_FS */ 01284 01285 /** 01286 * @brief Indicate whether VDD voltage is below or above the selected PVD threshold 01287 * @rmtoll SR2 PVDO LL_PWR_IsActiveFlag_PVDO 01288 * @retval State of bit (1 or 0). 01289 */ 01290 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_PVDO (void) 01291 { 01292 return (READ_BIT(PWR->SR2, PWR_SR2_PVDO) == (PWR_SR2_PVDO)); 01293 } 01294 01295 /** 01296 * @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 01297 * @rmtoll SR2 VOSF LL_PWR_IsActiveFlag_VOSF 01298 * @retval State of bit (1 or 0). 01299 */ 01300 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_VOSF (void) 01301 { 01302 return (READ_BIT(PWR->SR2, PWR_SR2_VOSF ) == (PWR_SR2_VOSF )); 01303 } 01304 01305 /** 01306 * @brief Indicate whether the regulator is ready in main mode or is in low-power mode 01307 * @note: Take care, return value "0" means the regulator is ready. Return value "1" means the output voltage range is still changing. 01308 * @rmtoll SR2 REGLPF LL_PWR_IsActiveFlag_REGLPF 01309 * @retval State of bit (1 or 0). 01310 */ 01311 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_REGLPF(void) 01312 { 01313 return (READ_BIT(PWR->SR2, PWR_SR2_REGLPF) == (PWR_SR2_REGLPF)); 01314 } 01315 01316 /** 01317 * @brief Indicate whether or not the low-power regulator is ready 01318 * @rmtoll SR2 REGLPS LL_PWR_IsActiveFlag_REGLPS 01319 * @retval State of bit (1 or 0). 01320 */ 01321 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_REGLPS(void) 01322 { 01323 return (READ_BIT(PWR->SR2, PWR_SR2_REGLPS) == (PWR_SR2_REGLPS)); 01324 } 01325 01326 /** 01327 * @} 01328 */ 01329 01330 01331 /** 01332 * @} 01333 */ 01334 01335 /** 01336 * @} 01337 */ 01338 01339 #endif /* defined(PWR) */ 01340 01341 /** 01342 * @} 01343 */ 01344 01345 #ifdef __cplusplus 01346 } 01347 #endif 01348 01349 #endif /* __STM32L4xx_LL_PWR_H */ 01350 01351 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 01352
Generated on Tue Jul 12 2022 11:35:16 by 1.7.2