1 /**
2 ******************************************************************************
3 * @file stm32g0xx_ll_pwr.h
4 * @author MCD Application Team
5 * @brief Header file of PWR LL module.
6 ******************************************************************************
7 * @attention
8 *
9 * Copyright (c) 2018 STMicroelectronics.
10 * All rights reserved.
11 *
12 * This software is licensed under terms that can be found in the LICENSE file
13 * in the root directory of this software component.
14 * If no LICENSE file comes with this software, it is provided AS-IS.
15 *
16 ******************************************************************************
17 */
18
19 /* Define to prevent recursive inclusion -------------------------------------*/
20 #ifndef STM32G0xx_LL_PWR_H
21 #define STM32G0xx_LL_PWR_H
22
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26
27 /* Includes ------------------------------------------------------------------*/
28 #include "stm32g0xx.h"
29
30 /** @addtogroup STM32G0xx_LL_Driver
31 * @{
32 */
33
34 #if defined(PWR)
35
36 /** @defgroup PWR_LL PWR
37 * @{
38 */
39
40 /* Private types -------------------------------------------------------------*/
41 /* Private variables ---------------------------------------------------------*/
42
43 /* Private constants ---------------------------------------------------------*/
44
45 /* Private macros ------------------------------------------------------------*/
46
47 /* Exported types ------------------------------------------------------------*/
48 /* Exported constants --------------------------------------------------------*/
49 /** @defgroup PWR_LL_Exported_Constants PWR Exported Constants
50 * @{
51 */
52
53 /** @defgroup PWR_LL_EC_CLEAR_FLAG Clear Flags Defines
54 * @brief Flags defines which can be used with LL_PWR_WriteReg function
55 * @{
56 */
57 #define LL_PWR_SCR_CSBF PWR_SCR_CSBF
58 #define LL_PWR_SCR_CWUF PWR_SCR_CWUF
59 #define LL_PWR_SCR_CWUF6 PWR_SCR_CWUF6
60 #define LL_PWR_SCR_CWUF5 PWR_SCR_CWUF5
61 #define LL_PWR_SCR_CWUF4 PWR_SCR_CWUF4
62 #if defined(PWR_CR3_EWUP3)
63 #define LL_PWR_SCR_CWUF3 PWR_SCR_CWUF3
64 #endif /* PWR_CR3_EWUP3 */
65 #define LL_PWR_SCR_CWUF2 PWR_SCR_CWUF2
66 #define LL_PWR_SCR_CWUF1 PWR_SCR_CWUF1
67 /**
68 * @}
69 */
70
71 /** @defgroup PWR_LL_EC_GET_FLAG Get Flags Defines
72 * @brief Flags defines which can be used with LL_PWR_ReadReg function
73 * @{
74 */
75 #define LL_PWR_SR1_WUFI PWR_SR1_WUFI
76 #define LL_PWR_SR1_SBF PWR_SR1_SBF
77 #define LL_PWR_SR1_WUF6 PWR_SR1_WUF6
78 #define LL_PWR_SR1_WUF5 PWR_SR1_WUF5
79 #define LL_PWR_SR1_WUF4 PWR_SR1_WUF4
80 #if defined(PWR_CR3_EWUP3)
81 #define LL_PWR_SR1_WUF3 PWR_SR1_WUF3
82 #endif /* PWR_CR3_EWUP3 */
83 #define LL_PWR_SR1_WUF2 PWR_SR1_WUF2
84 #define LL_PWR_SR1_WUF1 PWR_SR1_WUF1
85 #if defined(PWR_SR2_PVDO)
86 #define LL_PWR_SR2_PVDO PWR_SR2_PVDO
87 #endif /* PWR_SR2_PVDO */
88 #define LL_PWR_SR2_VOSF PWR_SR2_VOSF
89 #define LL_PWR_SR2_REGLPF PWR_SR2_REGLPF
90 #define LL_PWR_SR2_REGLPS PWR_SR2_REGLPS
91 /**
92 * @}
93 */
94
95 /** @defgroup PWR_LL_EC_REGU_VOLTAGE REGU VOLTAGE
96 * @{
97 */
98 #define LL_PWR_REGU_VOLTAGE_SCALE1 PWR_CR1_VOS_0
99 #define LL_PWR_REGU_VOLTAGE_SCALE2 PWR_CR1_VOS_1
100 /**
101 * @}
102 */
103
104 /** @defgroup PWR_LL_EC_MODE_PWR MODE PWR
105 * @{
106 */
107 #define LL_PWR_MODE_STOP0 (0x00000000UL)
108 #define LL_PWR_MODE_STOP1 (PWR_CR1_LPMS_0)
109 #define LL_PWR_MODE_STANDBY (PWR_CR1_LPMS_1|PWR_CR1_LPMS_0)
110 #if defined (PWR_CR1_LPMS_2)
111 #define LL_PWR_MODE_SHUTDOWN (PWR_CR1_LPMS_2)
112 #endif /* PWR_CR1_LPMS_2 */
113 /**
114 * @}
115 */
116
117 #if defined(PWR_CR2_PVDE)
118 /** @defgroup PWR_LL_EC_PVDLEVEL PVDLEVEL
119 * @{
120 */
121 #define LL_PWR_PVDLLEVEL_0 0x000000000u /* VPVD0 > 2.05 V */
122 #define LL_PWR_PVDLLEVEL_1 (PWR_CR2_PVDFT_0) /* VPVD0 > 2.2 V */
123 #define LL_PWR_PVDLLEVEL_2 (PWR_CR2_PVDFT_1) /* VPVD1 > 2.36 V */
124 #define LL_PWR_PVDLLEVEL_3 (PWR_CR2_PVDFT_1 | PWR_CR2_PVDFT_0) /* VPVD2 > 2.52 V */
125 #define LL_PWR_PVDLLEVEL_4 (PWR_CR2_PVDFT_2) /* VPVD3 > 2.64 V */
126 #define LL_PWR_PVDLLEVEL_5 (PWR_CR2_PVDFT_2 | PWR_CR2_PVDFT_0) /* VPVD4 > 2.81 V */
127 #define LL_PWR_PVDLLEVEL_6 (PWR_CR2_PVDFT_2 | PWR_CR2_PVDFT_1) /* VPVD5 > 2.91 V */
128
129 #define LL_PWR_PVDHLEVEL_0 0x00000000u /* VPDD0 > 2.15 V */
130 #define LL_PWR_PVDHLEVEL_1 (PWR_CR2_PVDRT_0) /* VPVD1 > 2.3 V */
131 #define LL_PWR_PVDHLEVEL_2 (PWR_CR2_PVDRT_1) /* VPVD1 > 2.46 V */
132 #define LL_PWR_PVDHLEVEL_3 (PWR_CR2_PVDRT_1 | PWR_CR2_PVDRT_0) /* VPVD2 > 2.62 V */
133 #define LL_PWR_PVDHLEVEL_4 (PWR_CR2_PVDRT_2) /* VPVD3 > 2.74 V */
134 #define LL_PWR_PVDHLEVEL_5 (PWR_CR2_PVDRT_2 | PWR_CR2_PVDRT_0) /* VPVD4 > 2.91 V */
135 #define LL_PWR_PVDHLEVEL_6 (PWR_CR2_PVDRT_2 | PWR_CR2_PVDRT_1) /* VPVD5 > 3.01 V */
136 #define LL_PWR_PVDHLEVEL_7 (PWR_CR2_PVDRT_2 | PWR_CR2_PVDRT_1 | PWR_CR2_PVDRT_0) /* External input analog voltage (Compare internally to VREFINT) */
137 /**
138 * @}
139 */
140 #endif /* PWR_CR2_PVDE */
141
142 #if defined(PWR_PVM_SUPPORT)
143 /** @defgroup PWR_LL_EC_PVM_IP PVM_IP
144 * @{
145 */
146 #define LL_PWR_PVM_USB PWR_CR2_PVMEN_USB /*!< Peripheral Voltage Monitoring enable for USB peripheral: Enable to keep the USB peripheral voltage monitoring under control (power domain Vddio2) */
147 /**
148 * @}
149 */
150 #endif /* PWR_PVM_SUPPORT */
151
152 /** @defgroup PWR_LL_EC_WAKEUP WAKEUP
153 * @{
154 */
155 #define LL_PWR_WAKEUP_PIN1 (PWR_CR3_EWUP1)
156 #define LL_PWR_WAKEUP_PIN2 (PWR_CR3_EWUP2)
157 #if defined(PWR_CR3_EWUP3)
158 #define LL_PWR_WAKEUP_PIN3 (PWR_CR3_EWUP3)
159 #endif /* PWR_CR3_EWUP3 */
160 #define LL_PWR_WAKEUP_PIN4 (PWR_CR3_EWUP4)
161 #if defined(PWR_CR3_EWUP5)
162 #define LL_PWR_WAKEUP_PIN5 (PWR_CR3_EWUP5)
163 #endif /* PWR_CR3_EWUP5 */
164 #define LL_PWR_WAKEUP_PIN6 (PWR_CR3_EWUP6)
165 /**
166 * @}
167 */
168
169 /** @defgroup PWR_LL_EC_BATT_CHARG_RESISTOR BATT CHARG RESISTOR
170 * @{
171 */
172 #define LL_PWR_BATTCHARG_RESISTOR_5K 0x000000000u
173 #define LL_PWR_BATTCHARG_RESISTOR_1_5K (PWR_CR4_VBRS)
174 /**
175 * @}
176 */
177
178 /** @defgroup PWR_LL_EC_GPIO GPIO
179 * @{
180 */
181 #define LL_PWR_GPIO_A ((uint32_t)(&(PWR->PUCRA)))
182 #define LL_PWR_GPIO_B ((uint32_t)(&(PWR->PUCRB)))
183 #define LL_PWR_GPIO_C ((uint32_t)(&(PWR->PUCRC)))
184 #define LL_PWR_GPIO_D ((uint32_t)(&(PWR->PUCRD)))
185 #if defined(GPIOE)
186 #define LL_PWR_GPIO_E ((uint32_t)(&(PWR->PUCRE)))
187 #endif /* GPIOE */
188 #define LL_PWR_GPIO_F ((uint32_t)(&(PWR->PUCRF)))
189 /**
190 * @}
191 */
192
193 /** @defgroup PWR_LL_EC_GPIO_BIT GPIO BIT
194 * @{
195 */
196 #define LL_PWR_GPIO_BIT_0 0x00000001u
197 #define LL_PWR_GPIO_BIT_1 0x00000002u
198 #define LL_PWR_GPIO_BIT_2 0x00000004u
199 #define LL_PWR_GPIO_BIT_3 0x00000008u
200 #define LL_PWR_GPIO_BIT_4 0x00000010u
201 #define LL_PWR_GPIO_BIT_5 0x00000020u
202 #define LL_PWR_GPIO_BIT_6 0x00000040u
203 #define LL_PWR_GPIO_BIT_7 0x00000080u
204 #define LL_PWR_GPIO_BIT_8 0x00000100u
205 #define LL_PWR_GPIO_BIT_9 0x00000200u
206 #define LL_PWR_GPIO_BIT_10 0x00000400u
207 #define LL_PWR_GPIO_BIT_11 0x00000800u
208 #define LL_PWR_GPIO_BIT_12 0x00001000u
209 #define LL_PWR_GPIO_BIT_13 0x00002000u
210 #define LL_PWR_GPIO_BIT_14 0x00004000u
211 #define LL_PWR_GPIO_BIT_15 0x00008000u
212 /**
213 * @}
214 */
215
216 /**
217 * @}
218 */
219
220 /* Exported macro ------------------------------------------------------------*/
221 /** @defgroup PWR_LL_Exported_Macros PWR Exported Macros
222 * @{
223 */
224
225 /** @defgroup PWR_LL_EM_WRITE_READ Common Write and read registers Macros
226 * @{
227 */
228
229 /**
230 * @brief Write a value in PWR register
231 * @param __REG__ Register to be written
232 * @param __VALUE__ Value to be written in the register
233 * @retval None
234 */
235 #define LL_PWR_WriteReg(__REG__, __VALUE__) WRITE_REG(PWR->__REG__, (__VALUE__))
236
237 /**
238 * @brief Read a value in PWR register
239 * @param __REG__ Register to be read
240 * @retval Register value
241 */
242 #define LL_PWR_ReadReg(__REG__) READ_REG(PWR->__REG__)
243 /**
244 * @}
245 */
246
247 /**
248 * @}
249 */
250
251
252 /* Exported functions --------------------------------------------------------*/
253 /** @defgroup PWR_LL_Exported_Functions PWR Exported Functions
254 * @{
255 */
256
257 /** @defgroup PWR_LL_EF_Configuration Configuration
258 * @{
259 */
260 /**
261 * @brief Set the main internal regulator output voltage
262 * @rmtoll CR1 VOS LL_PWR_SetRegulVoltageScaling
263 * @param VoltageScaling This parameter can be one of the following values:
264 * @arg @ref LL_PWR_REGU_VOLTAGE_SCALE1
265 * @arg @ref LL_PWR_REGU_VOLTAGE_SCALE2
266 * @retval None
267 */
LL_PWR_SetRegulVoltageScaling(uint32_t VoltageScaling)268 __STATIC_INLINE void LL_PWR_SetRegulVoltageScaling(uint32_t VoltageScaling)
269 {
270 MODIFY_REG(PWR->CR1, PWR_CR1_VOS, VoltageScaling);
271 }
272
273 /**
274 * @brief Get the main internal regulator output voltage
275 * @rmtoll CR1 VOS LL_PWR_GetRegulVoltageScaling
276 * @retval Returned value can be one of the following values:
277 * @arg @ref LL_PWR_REGU_VOLTAGE_SCALE1
278 * @arg @ref LL_PWR_REGU_VOLTAGE_SCALE2
279 */
LL_PWR_GetRegulVoltageScaling(void)280 __STATIC_INLINE uint32_t LL_PWR_GetRegulVoltageScaling(void)
281 {
282 return (READ_BIT(PWR->CR1, PWR_CR1_VOS));
283 }
284
285 /**
286 * @brief Switch the regulator from main mode to low-power mode
287 * @rmtoll CR1 LPR LL_PWR_EnableLowPowerRunMode
288 * @retval None
289 */
LL_PWR_EnableLowPowerRunMode(void)290 __STATIC_INLINE void LL_PWR_EnableLowPowerRunMode(void)
291 {
292 SET_BIT(PWR->CR1, PWR_CR1_LPR);
293 }
294
295 /**
296 * @brief Switch the regulator from low-power mode to main mode
297 * @rmtoll CR1 LPR LL_PWR_DisableLowPowerRunMode
298 * @retval None
299 */
LL_PWR_DisableLowPowerRunMode(void)300 __STATIC_INLINE void LL_PWR_DisableLowPowerRunMode(void)
301 {
302 CLEAR_BIT(PWR->CR1, PWR_CR1_LPR);
303 }
304
305 /**
306 * @brief Check if the regulator is in low-power mode
307 * @rmtoll CR1 LPR LL_PWR_IsEnabledLowPowerRunMode
308 * @retval State of bit (1 or 0).
309 */
LL_PWR_IsEnabledLowPowerRunMode(void)310 __STATIC_INLINE uint32_t LL_PWR_IsEnabledLowPowerRunMode(void)
311 {
312 return ((READ_BIT(PWR->CR1, PWR_CR1_LPR) == (PWR_CR1_LPR)) ? 1UL : 0UL);
313 }
314
315 /**
316 * @brief Switch from run main mode to run low-power mode.
317 * @rmtoll CR1 LPR LL_PWR_EnterLowPowerRunMode
318 * @retval None
319 */
LL_PWR_EnterLowPowerRunMode(void)320 __STATIC_INLINE void LL_PWR_EnterLowPowerRunMode(void)
321 {
322 LL_PWR_EnableLowPowerRunMode();
323 }
324
325 /**
326 * @brief Switch from run main mode to low-power mode.
327 * @rmtoll CR1 LPR LL_PWR_ExitLowPowerRunMode
328 * @retval None
329 */
LL_PWR_ExitLowPowerRunMode(void)330 __STATIC_INLINE void LL_PWR_ExitLowPowerRunMode(void)
331 {
332 LL_PWR_DisableLowPowerRunMode();
333 }
334
335 /**
336 * @brief Enable access to the backup domain
337 * @rmtoll CR1 DBP LL_PWR_EnableBkUpAccess
338 * @retval None
339 */
LL_PWR_EnableBkUpAccess(void)340 __STATIC_INLINE void LL_PWR_EnableBkUpAccess(void)
341 {
342 SET_BIT(PWR->CR1, PWR_CR1_DBP);
343 }
344
345 /**
346 * @brief Disable access to the backup domain
347 * @rmtoll CR1 DBP LL_PWR_DisableBkUpAccess
348 * @retval None
349 */
LL_PWR_DisableBkUpAccess(void)350 __STATIC_INLINE void LL_PWR_DisableBkUpAccess(void)
351 {
352 CLEAR_BIT(PWR->CR1, PWR_CR1_DBP);
353 }
354
355 /**
356 * @brief Check if the backup domain is enabled
357 * @rmtoll CR1 DBP LL_PWR_IsEnabledBkUpAccess
358 * @retval State of bit (1 or 0).
359 */
LL_PWR_IsEnabledBkUpAccess(void)360 __STATIC_INLINE uint32_t LL_PWR_IsEnabledBkUpAccess(void)
361 {
362 return ((READ_BIT(PWR->CR1, PWR_CR1_DBP) == (PWR_CR1_DBP)) ? 1UL : 0UL);
363 }
364
365 /**
366 * @brief Enable Flash Power-down mode during low power sleep mode
367 * @rmtoll CR1 CFIPD_SLP LL_PWR_EnableFlashPowerDownInLPSleep
368 * @retval None
369 */
LL_PWR_EnableFlashPowerDownInLPSleep(void)370 __STATIC_INLINE void LL_PWR_EnableFlashPowerDownInLPSleep(void)
371 {
372 SET_BIT(PWR->CR1, PWR_CR1_FPD_LPSLP);
373 }
374
375 /**
376 * @brief Disable Flash Power-down mode during Low power sleep mode
377 * @rmtoll CR1 CFIPD_SLP LL_PWR_DisableFlashPowerDownInLPSleep
378 * @retval None
379 */
LL_PWR_DisableFlashPowerDownInLPSleep(void)380 __STATIC_INLINE void LL_PWR_DisableFlashPowerDownInLPSleep(void)
381 {
382 CLEAR_BIT(PWR->CR1, PWR_CR1_FPD_LPSLP);
383 }
384
385 /**
386 * @brief Check if flash power-down mode during low power sleep mode domain is enabled
387 * @rmtoll CR1 CFIPD_SLP LL_PWR_IsEnableFlashPowerDownInLPSleep
388 * @retval State of bit (1 or 0).
389 */
LL_PWR_IsEnableFlashPowerDownInLPSleep(void)390 __STATIC_INLINE uint32_t LL_PWR_IsEnableFlashPowerDownInLPSleep(void)
391 {
392 return ((READ_BIT(PWR->CR1, PWR_CR1_FPD_LPSLP) == (PWR_CR1_FPD_LPSLP)) ? 1UL : 0UL);
393 }
394
395 /**
396 * @brief Enable Flash Power-down mode during low power run mode
397 * @rmtoll CR1 CFIPD_RUN LL_PWR_EnableFlashPowerDownInLPRun
398 * @retval None
399 */
LL_PWR_EnableFlashPowerDownInLPRun(void)400 __STATIC_INLINE void LL_PWR_EnableFlashPowerDownInLPRun(void)
401 {
402 SET_BIT(PWR->CR1, PWR_CR1_FPD_LPRUN);
403 }
404
405 /**
406 * @brief Disable Flash Power-down mode during Low power run mode
407 * @rmtoll CR1 CFIPD_RUN LL_PWR_DisableFlashPowerDownInLPRun
408 * @retval None
409 */
LL_PWR_DisableFlashPowerDownInLPRun(void)410 __STATIC_INLINE void LL_PWR_DisableFlashPowerDownInLPRun(void)
411 {
412 CLEAR_BIT(PWR->CR1, PWR_CR1_FPD_LPRUN);
413 }
414
415 /**
416 * @brief Check if flash power-down mode during low power run mode domain is enabled
417 * @rmtoll CR1 CFIPD_RUN LL_PWR_IsEnableFlashPowerDownInLPRun
418 * @retval State of bit (1 or 0).
419 */
LL_PWR_IsEnableFlashPowerDownInLPRun(void)420 __STATIC_INLINE uint32_t LL_PWR_IsEnableFlashPowerDownInLPRun(void)
421 {
422 return ((READ_BIT(PWR->CR1, PWR_CR1_FPD_LPRUN) == (PWR_CR1_FPD_LPRUN)) ? 1UL : 0UL);
423 }
424
425 /**
426 * @brief Enable Flash Power-down mode during stop mode
427 * @rmtoll CR1 CFIPD_STOP LL_PWR_EnableFlashPowerDownInStop
428 * @retval None
429 */
LL_PWR_EnableFlashPowerDownInStop(void)430 __STATIC_INLINE void LL_PWR_EnableFlashPowerDownInStop(void)
431 {
432 SET_BIT(PWR->CR1, PWR_CR1_FPD_STOP);
433 }
434
435 /**
436 * @brief Disable Flash Power-down mode during stop mode
437 * @rmtoll CR1 CFIPD_STOP LL_PWR_DisableFlashPowerDownInStop
438 * @retval None
439 */
LL_PWR_DisableFlashPowerDownInStop(void)440 __STATIC_INLINE void LL_PWR_DisableFlashPowerDownInStop(void)
441 {
442 CLEAR_BIT(PWR->CR1, PWR_CR1_FPD_STOP);
443 }
444
445 /**
446 * @brief Check if flash power-down mode during stop mode domain is enabled
447 * @rmtoll CR1 CFIPD_STOP LL_PWR_IsEnableFlashPowerDownInStop
448 * @retval State of bit (1 or 0).
449 */
LL_PWR_IsEnableFlashPowerDownInStop(void)450 __STATIC_INLINE uint32_t LL_PWR_IsEnableFlashPowerDownInStop(void)
451 {
452 return ((READ_BIT(PWR->CR1, PWR_CR1_FPD_STOP) == (PWR_CR1_FPD_STOP)) ? 1UL : 0UL);
453 }
454
455 #if defined(STM32G0C1xx) || defined(STM32G0B1xx)
456 /**
457 * @brief Enable VDDIO2 supply
458 * @rmtoll CR2 IOSV LL_PWR_EnableVddIO2
459 * @retval None
460 */
LL_PWR_EnableVddIO2(void)461 __STATIC_INLINE void LL_PWR_EnableVddIO2(void)
462 {
463 SET_BIT(PWR->CR2, PWR_CR2_IOSV);
464 }
465
466 /**
467 * @brief Disable VDDIO2 supply
468 * @rmtoll CR2 IOSV LL_PWR_DisableVddIO2
469 * @retval None
470 */
LL_PWR_DisableVddIO2(void)471 __STATIC_INLINE void LL_PWR_DisableVddIO2(void)
472 {
473 CLEAR_BIT(PWR->CR2, PWR_CR2_IOSV);
474 }
475
476 /**
477 * @brief Check if VDDIO2 supply is enabled
478 * @rmtoll CR2 IOSV LL_PWR_IsEnabledVddIO2
479 * @retval State of bit (1 or 0).
480 */
LL_PWR_IsEnabledVddIO2(void)481 __STATIC_INLINE uint32_t LL_PWR_IsEnabledVddIO2(void)
482 {
483 return ((READ_BIT(PWR->CR2, PWR_CR2_IOSV) == (PWR_CR2_IOSV)) ? 1UL : 0UL);
484 }
485 #endif /* STM32G0C1xx || STM32G0B1xx */
486
487 #if defined(PWR_CR2_USV)
488 /**
489 * @brief Enable VDDUSB supply
490 * @rmtoll CR2 USV LL_PWR_EnableVddUSB
491 * @retval None
492 */
LL_PWR_EnableVddUSB(void)493 __STATIC_INLINE void LL_PWR_EnableVddUSB(void)
494 {
495 SET_BIT(PWR->CR2, PWR_CR2_USV);
496 }
497
498 /**
499 * @brief Disable VDDUSB supply
500 * @rmtoll CR2 USV LL_PWR_DisableVddUSB
501 * @retval None
502 */
LL_PWR_DisableVddUSB(void)503 __STATIC_INLINE void LL_PWR_DisableVddUSB(void)
504 {
505 CLEAR_BIT(PWR->CR2, PWR_CR2_USV);
506 }
507
508 /**
509 * @brief Check if VDDUSB supply is enabled
510 * @rmtoll CR2 USV LL_PWR_IsEnabledVddUSB
511 * @retval State of bit (1 or 0).
512 */
LL_PWR_IsEnabledVddUSB(void)513 __STATIC_INLINE uint32_t LL_PWR_IsEnabledVddUSB(void)
514 {
515 return ((READ_BIT(PWR->CR2, PWR_CR2_USV) == (PWR_CR2_USV)) ? 1UL : 0UL);
516 }
517 #endif /* PWR_CR2_USV */
518
519 #if defined (PWR_PVM_SUPPORT)
520 /**
521 * @brief Enable the Power Voltage Monitoring on a peripheral
522 * @rmtoll CR2 PVMUSB LL_PWR_EnablePVM
523 * @param PeriphVoltage This parameter can be one of the following values:
524 * @arg @ref LL_PWR_PVM_USB (*)
525 *
526 * (*) value not defined in all devices
527 * @retval None
528 */
LL_PWR_EnablePVM(uint32_t PeriphVoltage)529 __STATIC_INLINE void LL_PWR_EnablePVM(uint32_t PeriphVoltage)
530 {
531 SET_BIT(PWR->CR2, PeriphVoltage);
532 }
533
534 /**
535 * @brief Disable the Power Voltage Monitoring on a peripheral
536 * @rmtoll CR2 PVMUSB LL_PWR_DisablePVM
537 * @param PeriphVoltage This parameter can be one of the following values:
538 * @arg @ref LL_PWR_PVM_USB (*)
539 *
540 * (*) value not defined in all devices
541 * @retval None
542 */
LL_PWR_DisablePVM(uint32_t PeriphVoltage)543 __STATIC_INLINE void LL_PWR_DisablePVM(uint32_t PeriphVoltage)
544 {
545 CLEAR_BIT(PWR->CR2, PeriphVoltage);
546 }
547
548 /**
549 * @brief Check if Power Voltage Monitoring is enabled on a peripheral
550 * @rmtoll CR2 PVMUSB LL_PWR_IsEnabledPVM
551 * @param PeriphVoltage This parameter can be one of the following values:
552 * @arg @ref LL_PWR_PVM_USB (*)
553 *
554 * (*) value not defined in all devices
555 * @retval State of bit (1 or 0).
556 */
LL_PWR_IsEnabledPVM(uint32_t PeriphVoltage)557 __STATIC_INLINE uint32_t LL_PWR_IsEnabledPVM(uint32_t PeriphVoltage)
558 {
559 return ((READ_BIT(PWR->CR2, PeriphVoltage) == (PeriphVoltage)) ? 1UL : 0UL);
560 }
561 #endif /* PWR_PVM_SUPPORT */
562
563 /**
564 * @brief Set Low-Power mode
565 * @rmtoll CR1 LPMS LL_PWR_SetPowerMode
566 * @param LowPowerMode This parameter can be one of the following values:
567 * @arg @ref LL_PWR_MODE_STOP0
568 * @arg @ref LL_PWR_MODE_STOP1
569 * @arg @ref LL_PWR_MODE_STANDBY
570 * @arg @ref LL_PWR_MODE_SHUTDOWN
571 * @retval None
572 */
LL_PWR_SetPowerMode(uint32_t LowPowerMode)573 __STATIC_INLINE void LL_PWR_SetPowerMode(uint32_t LowPowerMode)
574 {
575 MODIFY_REG(PWR->CR1, PWR_CR1_LPMS, LowPowerMode);
576 }
577
578 /**
579 * @brief Get Low-Power mode
580 * @rmtoll CR1 LPMS LL_PWR_GetPowerMode
581 * @retval Returned value can be one of the following values:
582 * @arg @ref LL_PWR_MODE_STOP0
583 * @arg @ref LL_PWR_MODE_STOP1
584 * @arg @ref LL_PWR_MODE_STANDBY
585 * @arg @ref LL_PWR_MODE_SHUTDOWN
586 */
LL_PWR_GetPowerMode(void)587 __STATIC_INLINE uint32_t LL_PWR_GetPowerMode(void)
588 {
589 return (uint32_t)(READ_BIT(PWR->CR1, PWR_CR1_LPMS));
590 }
591
592 #if defined (PWR_CR2_PVDE)
593 /**
594 * @brief Configure the high voltage threshold detected by the Power Voltage Detector
595 * @rmtoll CR2 PLS LL_PWR_SetPVDHighLevel
596 * @param PVDHighLevel This parameter can be one of the following values:
597 * @arg @ref LL_PWR_PVDHLEVEL_0
598 * @arg @ref LL_PWR_PVDHLEVEL_1
599 * @arg @ref LL_PWR_PVDHLEVEL_2
600 * @arg @ref LL_PWR_PVDHLEVEL_3
601 * @arg @ref LL_PWR_PVDHLEVEL_4
602 * @arg @ref LL_PWR_PVDHLEVEL_5
603 * @arg @ref LL_PWR_PVDHLEVEL_6
604 * @arg @ref LL_PWR_PVDHLEVEL_7
605 * @retval None
606 */
LL_PWR_SetPVDHighLevel(uint32_t PVDHighLevel)607 __STATIC_INLINE void LL_PWR_SetPVDHighLevel(uint32_t PVDHighLevel)
608 {
609 MODIFY_REG(PWR->CR2, PWR_CR2_PVDRT, PVDHighLevel);
610 }
611
612 /**
613 * @brief Get the voltage threshold detection
614 * @rmtoll CR2 PLS LL_PWR_GetPVDHighLevel
615 * @retval Returned value can be one of the following values:
616 * @arg @ref LL_PWR_PVDHLEVEL_0
617 * @arg @ref LL_PWR_PVDHLEVEL_1
618 * @arg @ref LL_PWR_PVDHLEVEL_2
619 * @arg @ref LL_PWR_PVDHLEVEL_3
620 * @arg @ref LL_PWR_PVDHLEVEL_4
621 * @arg @ref LL_PWR_PVDHLEVEL_5
622 * @arg @ref LL_PWR_PVDHLEVEL_6
623 * @arg @ref LL_PWR_PVDHLEVEL_7
624 */
LL_PWR_GetPVDHighLevel(void)625 __STATIC_INLINE uint32_t LL_PWR_GetPVDHighLevel(void)
626 {
627 return (uint32_t)(READ_BIT(PWR->CR2, PWR_CR2_PVDRT));
628 }
629 /**
630 * @brief Configure the low voltage threshold detected by the Power Voltage Detector
631 * @rmtoll CR2 PLS LL_PWR_SetPVDLowLevel
632 * @param PVDLowLevel This parameter can be one of the following values:
633 * @arg @ref LL_PWR_PVDLLEVEL_0
634 * @arg @ref LL_PWR_PVDLLEVEL_1
635 * @arg @ref LL_PWR_PVDLLEVEL_2
636 * @arg @ref LL_PWR_PVDLLEVEL_3
637 * @arg @ref LL_PWR_PVDLLEVEL_4
638 * @arg @ref LL_PWR_PVDLLEVEL_5
639 * @arg @ref LL_PWR_PVDLLEVEL_6
640 * @retval None
641 */
LL_PWR_SetPVDLowLevel(uint32_t PVDLowLevel)642 __STATIC_INLINE void LL_PWR_SetPVDLowLevel(uint32_t PVDLowLevel)
643 {
644 MODIFY_REG(PWR->CR2, PWR_CR2_PVDFT, PVDLowLevel);
645 }
646
647 /**
648 * @brief Get the low voltage threshold detection
649 * @rmtoll CR2 PLS LL_PWR_GetPVDLowLevel
650 * @retval Returned value can be one of the following values:
651 * @arg @ref LL_PWR_PVDLLEVEL_0
652 * @arg @ref LL_PWR_PVDLLEVEL_1
653 * @arg @ref LL_PWR_PVDLLEVEL_2
654 * @arg @ref LL_PWR_PVDLLEVEL_3
655 * @arg @ref LL_PWR_PVDLLEVEL_4
656 * @arg @ref LL_PWR_PVDLLEVEL_5
657 * @arg @ref LL_PWR_PVDLLEVEL_6
658 */
LL_PWR_GetPVDLowLevel(void)659 __STATIC_INLINE uint32_t LL_PWR_GetPVDLowLevel(void)
660 {
661 return (uint32_t)(READ_BIT(PWR->CR2, PWR_CR2_PVDFT));
662 }
663
664 /**
665 * @brief Enable Power Voltage Detector
666 * @rmtoll CR2 PVDE LL_PWR_EnablePVD
667 * @retval None
668 */
LL_PWR_EnablePVD(void)669 __STATIC_INLINE void LL_PWR_EnablePVD(void)
670 {
671 SET_BIT(PWR->CR2, PWR_CR2_PVDE);
672 }
673
674 /**
675 * @brief Disable Power Voltage Detector
676 * @rmtoll CR2 PVDE LL_PWR_DisablePVD
677 * @retval None
678 */
LL_PWR_DisablePVD(void)679 __STATIC_INLINE void LL_PWR_DisablePVD(void)
680 {
681 CLEAR_BIT(PWR->CR2, PWR_CR2_PVDE);
682 }
683
684 /**
685 * @brief Check if Power Voltage Detector is enabled
686 * @rmtoll CR2 PVDE LL_PWR_IsEnabledPVD
687 * @retval State of bit (1 or 0).
688 */
LL_PWR_IsEnabledPVD(void)689 __STATIC_INLINE uint32_t LL_PWR_IsEnabledPVD(void)
690 {
691 return ((READ_BIT(PWR->CR2, PWR_CR2_PVDE) == (PWR_CR2_PVDE)) ? 1UL : 0UL);
692 }
693 #endif /* PWR_CR2_PVDE */
694
695 /**
696 * @brief Enable Internal Wake-up line
697 * @rmtoll CR3 EIWF LL_PWR_EnableInternWU
698 * @retval None
699 */
LL_PWR_EnableInternWU(void)700 __STATIC_INLINE void LL_PWR_EnableInternWU(void)
701 {
702 SET_BIT(PWR->CR3, PWR_CR3_EIWUL);
703 }
704
705 /**
706 * @brief Disable Internal Wake-up line
707 * @rmtoll CR3 EIWF LL_PWR_DisableInternWU
708 * @retval None
709 */
LL_PWR_DisableInternWU(void)710 __STATIC_INLINE void LL_PWR_DisableInternWU(void)
711 {
712 CLEAR_BIT(PWR->CR3, PWR_CR3_EIWUL);
713 }
714
715 /**
716 * @brief Check if Internal Wake-up line is enabled
717 * @rmtoll CR3 EIWF LL_PWR_IsEnabledInternWU
718 * @retval State of bit (1 or 0).
719 */
LL_PWR_IsEnabledInternWU(void)720 __STATIC_INLINE uint32_t LL_PWR_IsEnabledInternWU(void)
721 {
722 return ((READ_BIT(PWR->CR3, PWR_CR3_EIWUL) == (PWR_CR3_EIWUL)) ? 1UL : 0UL);
723 }
724
725 /**
726 * @brief Enable pull-up and pull-down configuration
727 * @rmtoll CR3 APC LL_PWR_EnablePUPDCfg
728 * @retval None
729 */
LL_PWR_EnablePUPDCfg(void)730 __STATIC_INLINE void LL_PWR_EnablePUPDCfg(void)
731 {
732 SET_BIT(PWR->CR3, PWR_CR3_APC);
733 }
734
735 /**
736 * @brief Disable pull-up and pull-down configuration
737 * @rmtoll CR3 APC LL_PWR_DisablePUPDCfg
738 * @retval None
739 */
LL_PWR_DisablePUPDCfg(void)740 __STATIC_INLINE void LL_PWR_DisablePUPDCfg(void)
741 {
742 CLEAR_BIT(PWR->CR3, PWR_CR3_APC);
743 }
744
745 /**
746 * @brief Check if pull-up and pull-down configuration is enabled
747 * @rmtoll CR3 APC LL_PWR_IsEnabledPUPDCfg
748 * @retval State of bit (1 or 0).
749 */
LL_PWR_IsEnabledPUPDCfg(void)750 __STATIC_INLINE uint32_t LL_PWR_IsEnabledPUPDCfg(void)
751 {
752 return ((READ_BIT(PWR->CR3, PWR_CR3_APC) == (PWR_CR3_APC)) ? 1UL : 0UL);
753 }
754
755 #if defined(PWR_CR3_RRS)
756 /**
757 * @brief Enable SRAM content retention in Standby mode
758 * @rmtoll CR3 RRS LL_PWR_EnableSRAMRetention
759 * @retval None
760 */
LL_PWR_EnableSRAMRetention(void)761 __STATIC_INLINE void LL_PWR_EnableSRAMRetention(void)
762 {
763 SET_BIT(PWR->CR3, PWR_CR3_RRS);
764 }
765
766 /**
767 * @brief Disable SRAM content retention in Standby mode
768 * @rmtoll CR3 RRS LL_PWR_DisableSRAMRetention
769 * @retval None
770 */
LL_PWR_DisableSRAMRetention(void)771 __STATIC_INLINE void LL_PWR_DisableSRAMRetention(void)
772 {
773 CLEAR_BIT(PWR->CR3, PWR_CR3_RRS);
774 }
775
776 /**
777 * @brief Check if SRAM content retention in Standby mode is enabled
778 * @rmtoll CR3 RRS LL_PWR_IsEnabledSRAMRetention
779 * @retval State of bit (1 or 0).
780 */
LL_PWR_IsEnabledSRAMRetention(void)781 __STATIC_INLINE uint32_t LL_PWR_IsEnabledSRAMRetention(void)
782 {
783 return ((READ_BIT(PWR->CR3, PWR_CR3_RRS) == (PWR_CR3_RRS)) ? 1UL : 0UL);
784 }
785 #endif /* PWR_CR3_RRS */
786
787 #if defined(PWR_CR3_ENB_ULP)
788 /**
789 * @brief Enable sampling mode of LPMMU reset block
790 * @rmtoll CR3 ENB_ULP LL_PWR_EnableLPMUResetSamplingMode
791 * @retval None
792 */
LL_PWR_EnableLPMUResetSamplingMode(void)793 __STATIC_INLINE void LL_PWR_EnableLPMUResetSamplingMode(void)
794 {
795 SET_BIT(PWR->CR3, PWR_CR3_ENB_ULP);
796 }
797
798 /**
799 * @brief Disable sampling mode of LPMMU reset block
800 * @rmtoll CR3 ENB_ULP LL_PWR_DisableLPMUResetSamplingMode
801 * @retval None
802 */
LL_PWR_DisableLPMUResetSamplingMode(void)803 __STATIC_INLINE void LL_PWR_DisableLPMUResetSamplingMode(void)
804 {
805 CLEAR_BIT(PWR->CR3, PWR_CR3_ENB_ULP);
806 }
807
808 /**
809 * @brief Check if sampling mode of LPMMU reset block
810 * @rmtoll CR3 ENB_ULP LL_PWR_IsEnableLPMUResetSamplingMode
811 * @retval State of bit (1 or 0).
812 */
LL_PWR_IsEnableLPMUResetSamplingMode(void)813 __STATIC_INLINE uint32_t LL_PWR_IsEnableLPMUResetSamplingMode(void)
814 {
815 return ((READ_BIT(PWR->CR3, PWR_CR3_ENB_ULP) == (PWR_CR3_ENB_ULP)) ? 1UL : 0UL);
816 }
817 #endif /* PWR_CR3_ENB_ULP */
818
819 /**
820 * @brief Enable the WakeUp PINx functionality
821 * @rmtoll CR3 EWUP1 LL_PWR_EnableWakeUpPin\n
822 * CR3 EWUP2 LL_PWR_EnableWakeUpPin\n
823 * CR3 EWUP3 LL_PWR_EnableWakeUpPin\n
824 * CR3 EWUP4 LL_PWR_EnableWakeUpPin\n
825 * CR3 EWUP5 LL_PWR_EnableWakeUpPin\n
826 * CR3 EWUP6 LL_PWR_EnableWakeUpPin
827 * @param WakeUpPin This parameter can be one of the following values:
828 * @arg @ref LL_PWR_WAKEUP_PIN1
829 * @arg @ref LL_PWR_WAKEUP_PIN2
830 * @arg @ref LL_PWR_WAKEUP_PIN3 (*)
831 * @arg @ref LL_PWR_WAKEUP_PIN4
832 * @arg @ref LL_PWR_WAKEUP_PIN5 (*)
833 * @arg @ref LL_PWR_WAKEUP_PIN6
834 * @retval None
835 * @note (*) availability depends on devices
836 */
LL_PWR_EnableWakeUpPin(uint32_t WakeUpPin)837 __STATIC_INLINE void LL_PWR_EnableWakeUpPin(uint32_t WakeUpPin)
838 {
839 SET_BIT(PWR->CR3, WakeUpPin);
840 }
841
842 /**
843 * @brief Disable the WakeUp PINx functionality
844 * @rmtoll CR3 EWUP1 LL_PWR_DisableWakeUpPin\n
845 * CR3 EWUP2 LL_PWR_DisableWakeUpPin\n
846 * CR3 EWUP3 LL_PWR_DisableWakeUpPin\n
847 * CR3 EWUP4 LL_PWR_DisableWakeUpPin\n
848 * CR3 EWUP5 LL_PWR_DisableWakeUpPin\n
849 * CR3 EWUP6 LL_PWR_DisableWakeUpPin
850 * @param WakeUpPin This parameter can be one of the following values:
851 * @arg @ref LL_PWR_WAKEUP_PIN1
852 * @arg @ref LL_PWR_WAKEUP_PIN2
853 * @arg @ref LL_PWR_WAKEUP_PIN3 (*)
854 * @arg @ref LL_PWR_WAKEUP_PIN4
855 * @arg @ref LL_PWR_WAKEUP_PIN5 (*)
856 * @arg @ref LL_PWR_WAKEUP_PIN6
857 * @retval None
858 * @note (*) availability depends on devices
859 */
LL_PWR_DisableWakeUpPin(uint32_t WakeUpPin)860 __STATIC_INLINE void LL_PWR_DisableWakeUpPin(uint32_t WakeUpPin)
861 {
862 CLEAR_BIT(PWR->CR3, WakeUpPin);
863 }
864
865 /**
866 * @brief Check if the WakeUp PINx functionality is enabled
867 * @rmtoll CR3 EWUP1 LL_PWR_IsEnabledWakeUpPin\n
868 * CR3 EWUP2 LL_PWR_IsEnabledWakeUpPin\n
869 * CR3 EWUP3 LL_PWR_IsEnabledWakeUpPin\n
870 * CR3 EWUP4 LL_PWR_IsEnabledWakeUpPin\n
871 * CR3 EWUP5 LL_PWR_IsEnabledWakeUpPin\n
872 * CR3 EWUP6 LL_PWR_IsEnabledWakeUpPin
873 * @param WakeUpPin This parameter can be one of the following values:
874 * @arg @ref LL_PWR_WAKEUP_PIN1
875 * @arg @ref LL_PWR_WAKEUP_PIN2
876 * @arg @ref LL_PWR_WAKEUP_PIN3 (*)
877 * @arg @ref LL_PWR_WAKEUP_PIN4
878 * @arg @ref LL_PWR_WAKEUP_PIN5 (*)
879 * @arg @ref LL_PWR_WAKEUP_PIN6
880 * @retval State of bit (1 or 0).
881 * @note (*) availability depends on devices
882 */
LL_PWR_IsEnabledWakeUpPin(uint32_t WakeUpPin)883 __STATIC_INLINE uint32_t LL_PWR_IsEnabledWakeUpPin(uint32_t WakeUpPin)
884 {
885 return ((READ_BIT(PWR->CR3, WakeUpPin) == (WakeUpPin)) ? 1UL : 0UL);
886 }
887
888 /**
889 * @brief Set the resistor impedance
890 * @rmtoll CR4 VBRS LL_PWR_SetBattChargResistor
891 * @param Resistor This parameter can be one of the following values:
892 * @arg @ref LL_PWR_BATTCHARG_RESISTOR_5K
893 * @arg @ref LL_PWR_BATTCHARG_RESISTOR_1_5K
894 * @retval None
895 */
LL_PWR_SetBattChargResistor(uint32_t Resistor)896 __STATIC_INLINE void LL_PWR_SetBattChargResistor(uint32_t Resistor)
897 {
898 MODIFY_REG(PWR->CR4, PWR_CR4_VBRS, Resistor);
899 }
900
901 /**
902 * @brief Get the resistor impedance
903 * @rmtoll CR4 VBRS LL_PWR_GetBattChargResistor
904 * @retval Returned value can be one of the following values:
905 * @arg @ref LL_PWR_BATTCHARG_RESISTOR_5K
906 * @arg @ref LL_PWR_BATTCHARG_RESISTOR_1_5K
907 */
LL_PWR_GetBattChargResistor(void)908 __STATIC_INLINE uint32_t LL_PWR_GetBattChargResistor(void)
909 {
910 return (uint32_t)(READ_BIT(PWR->CR4, PWR_CR4_VBRS));
911 }
912
913 /**
914 * @brief Enable battery charging
915 * @rmtoll CR4 VBE LL_PWR_EnableBatteryCharging
916 * @retval None
917 */
LL_PWR_EnableBatteryCharging(void)918 __STATIC_INLINE void LL_PWR_EnableBatteryCharging(void)
919 {
920 SET_BIT(PWR->CR4, PWR_CR4_VBE);
921 }
922
923 /**
924 * @brief Disable battery charging
925 * @rmtoll CR4 VBE LL_PWR_DisableBatteryCharging
926 * @retval None
927 */
LL_PWR_DisableBatteryCharging(void)928 __STATIC_INLINE void LL_PWR_DisableBatteryCharging(void)
929 {
930 CLEAR_BIT(PWR->CR4, PWR_CR4_VBE);
931 }
932
933 /**
934 * @brief Check if battery charging is enabled
935 * @rmtoll CR4 VBE LL_PWR_IsEnabledBatteryCharging
936 * @retval State of bit (1 or 0).
937 */
LL_PWR_IsEnabledBatteryCharging(void)938 __STATIC_INLINE uint32_t LL_PWR_IsEnabledBatteryCharging(void)
939 {
940 return ((READ_BIT(PWR->CR4, PWR_CR4_VBE) == (PWR_CR4_VBE)) ? 1UL : 0UL);
941 }
942
943 /**
944 * @brief Set the Wake-Up pin polarity low for the event detection
945 * @rmtoll CR4 WP1 LL_PWR_SetWakeUpPinPolarityLow\n
946 * CR4 WP2 LL_PWR_SetWakeUpPinPolarityLow\n
947 * CR4 WP3 LL_PWR_SetWakeUpPinPolarityLow\n
948 * CR4 WP4 LL_PWR_SetWakeUpPinPolarityLow\n
949 * CR4 WP5 LL_PWR_SetWakeUpPinPolarityLow\n
950 * CR4 WP6 LL_PWR_SetWakeUpPinPolarityLow
951 * @param WakeUpPin This parameter can be one of the following values:
952 * @arg @ref LL_PWR_WAKEUP_PIN1
953 * @arg @ref LL_PWR_WAKEUP_PIN2
954 * @arg @ref LL_PWR_WAKEUP_PIN3 (*)
955 * @arg @ref LL_PWR_WAKEUP_PIN4
956 * @arg @ref LL_PWR_WAKEUP_PIN5 (*)
957 * @arg @ref LL_PWR_WAKEUP_PIN6
958 * @retval None
959 * @note (*) availability depends on devices
960 */
LL_PWR_SetWakeUpPinPolarityLow(uint32_t WakeUpPin)961 __STATIC_INLINE void LL_PWR_SetWakeUpPinPolarityLow(uint32_t WakeUpPin)
962 {
963 SET_BIT(PWR->CR4, WakeUpPin);
964 }
965
966 /**
967 * @brief Set the Wake-Up pin polarity high for the event detection
968 * @rmtoll CR4 WP1 LL_PWR_SetWakeUpPinPolarityHigh\n
969 * CR4 WP2 LL_PWR_SetWakeUpPinPolarityHigh\n
970 * CR4 WP3 LL_PWR_SetWakeUpPinPolarityHigh\n
971 * CR4 WP4 LL_PWR_SetWakeUpPinPolarityHigh\n
972 * CR4 WP5 LL_PWR_SetWakeUpPinPolarityHigh\n
973 * CR4 WP6 LL_PWR_SetWakeUpPinPolarityHigh
974 * @param WakeUpPin This parameter can be one of the following values:
975 * @arg @ref LL_PWR_WAKEUP_PIN1
976 * @arg @ref LL_PWR_WAKEUP_PIN2
977 * @arg @ref LL_PWR_WAKEUP_PIN3 (*)
978 * @arg @ref LL_PWR_WAKEUP_PIN4
979 * @arg @ref LL_PWR_WAKEUP_PIN5 (*)
980 * @arg @ref LL_PWR_WAKEUP_PIN6
981 * @note (*) availability depends on devices
982 * @retval None
983 */
LL_PWR_SetWakeUpPinPolarityHigh(uint32_t WakeUpPin)984 __STATIC_INLINE void LL_PWR_SetWakeUpPinPolarityHigh(uint32_t WakeUpPin)
985 {
986 CLEAR_BIT(PWR->CR4, WakeUpPin);
987 }
988
989 /**
990 * @brief Get the Wake-Up pin polarity for the event detection
991 * @rmtoll CR4 WP1 LL_PWR_IsWakeUpPinPolarityLow\n
992 * CR4 WP2 LL_PWR_IsWakeUpPinPolarityLow\n
993 * CR4 WP3 LL_PWR_IsWakeUpPinPolarityLow\n
994 * CR4 WP4 LL_PWR_IsWakeUpPinPolarityLow\n
995 * CR4 WP5 LL_PWR_IsWakeUpPinPolarityLow\n
996 * CR4 WP6 LL_PWR_IsWakeUpPinPolarityLow
997 * @param WakeUpPin This parameter can be one of the following values:
998 * @arg @ref LL_PWR_WAKEUP_PIN1
999 * @arg @ref LL_PWR_WAKEUP_PIN2
1000 * @arg @ref LL_PWR_WAKEUP_PIN3 (*)
1001 * @arg @ref LL_PWR_WAKEUP_PIN4
1002 * @arg @ref LL_PWR_WAKEUP_PIN5 (*)
1003 * @arg @ref LL_PWR_WAKEUP_PIN6
1004 * @note (*) availability depends on devices
1005 * @retval State of bit (1 or 0).
1006 */
LL_PWR_IsWakeUpPinPolarityLow(uint32_t WakeUpPin)1007 __STATIC_INLINE uint32_t LL_PWR_IsWakeUpPinPolarityLow(uint32_t WakeUpPin)
1008 {
1009 return ((READ_BIT(PWR->CR4, WakeUpPin) == (WakeUpPin)) ? 1UL : 0UL);
1010 }
1011
1012 /**
1013 * @brief Enable GPIO pull-up state in Standby and Shutdown modes
1014 * @rmtoll PUCRA PU0-15 LL_PWR_EnableGPIOPullUp\n
1015 * PUCRB PU0-15 LL_PWR_EnableGPIOPullUp\n
1016 * PUCRC PU0-15 LL_PWR_EnableGPIOPullUp\n
1017 * PUCRD PU0-15 LL_PWR_EnableGPIOPullUp\n
1018 * PUCRE PU0-15 LL_PWR_EnableGPIOPullUp\n
1019 * PUCRF PU0-13 LL_PWR_EnableGPIOPullUp
1020 * @param GPIO This parameter can be one of the following values:
1021 * @arg @ref LL_PWR_GPIO_A
1022 * @arg @ref LL_PWR_GPIO_B
1023 * @arg @ref LL_PWR_GPIO_C
1024 * @arg @ref LL_PWR_GPIO_D
1025 * @arg @ref LL_PWR_GPIO_E (*)
1026 * @arg @ref LL_PWR_GPIO_F
1027 * @param GPIONumber This parameter can be one of the following values:
1028 * @arg @ref LL_PWR_GPIO_BIT_0
1029 * @arg @ref LL_PWR_GPIO_BIT_1
1030 * @arg @ref LL_PWR_GPIO_BIT_2
1031 * @arg @ref LL_PWR_GPIO_BIT_3
1032 * @arg @ref LL_PWR_GPIO_BIT_4
1033 * @arg @ref LL_PWR_GPIO_BIT_5
1034 * @arg @ref LL_PWR_GPIO_BIT_6
1035 * @arg @ref LL_PWR_GPIO_BIT_7
1036 * @arg @ref LL_PWR_GPIO_BIT_8
1037 * @arg @ref LL_PWR_GPIO_BIT_9
1038 * @arg @ref LL_PWR_GPIO_BIT_10
1039 * @arg @ref LL_PWR_GPIO_BIT_11
1040 * @arg @ref LL_PWR_GPIO_BIT_12
1041 * @arg @ref LL_PWR_GPIO_BIT_13
1042 * @arg @ref LL_PWR_GPIO_BIT_14
1043 * @arg @ref LL_PWR_GPIO_BIT_15
1044 * @retval None
1045 */
LL_PWR_EnableGPIOPullUp(uint32_t GPIO,uint32_t GPIONumber)1046 __STATIC_INLINE void LL_PWR_EnableGPIOPullUp(uint32_t GPIO, uint32_t GPIONumber)
1047 {
1048 SET_BIT(*((__IO uint32_t *)GPIO), GPIONumber);
1049 }
1050
1051 /**
1052 * @brief Disable GPIO pull-up state in Standby and Shutdown modes
1053 * @rmtoll PUCRA PU0-15 LL_PWR_DisableGPIOPullUp\n
1054 * PUCRB PU0-15 LL_PWR_DisableGPIOPullUp\n
1055 * PUCRC PU0-15 LL_PWR_DisableGPIOPullUp\n
1056 * PUCRD PU0-15 LL_PWR_DisableGPIOPullUp\n
1057 * PUCRE PU0-15 LL_PWR_DisableGPIOPullUp\n
1058 * PUCRF PU0-13 LL_PWR_DisableGPIOPullUp
1059 * @param GPIO This parameter can be one of the following values:
1060 * @arg @ref LL_PWR_GPIO_A
1061 * @arg @ref LL_PWR_GPIO_B
1062 * @arg @ref LL_PWR_GPIO_C
1063 * @arg @ref LL_PWR_GPIO_D
1064 * @arg @ref LL_PWR_GPIO_E (*)
1065 * @arg @ref LL_PWR_GPIO_F
1066 * @param GPIONumber This parameter can be one of the following values:
1067 * @arg @ref LL_PWR_GPIO_BIT_0
1068 * @arg @ref LL_PWR_GPIO_BIT_1
1069 * @arg @ref LL_PWR_GPIO_BIT_2
1070 * @arg @ref LL_PWR_GPIO_BIT_3
1071 * @arg @ref LL_PWR_GPIO_BIT_4
1072 * @arg @ref LL_PWR_GPIO_BIT_5
1073 * @arg @ref LL_PWR_GPIO_BIT_6
1074 * @arg @ref LL_PWR_GPIO_BIT_7
1075 * @arg @ref LL_PWR_GPIO_BIT_8
1076 * @arg @ref LL_PWR_GPIO_BIT_9
1077 * @arg @ref LL_PWR_GPIO_BIT_10
1078 * @arg @ref LL_PWR_GPIO_BIT_11
1079 * @arg @ref LL_PWR_GPIO_BIT_12
1080 * @arg @ref LL_PWR_GPIO_BIT_13
1081 * @arg @ref LL_PWR_GPIO_BIT_14
1082 * @arg @ref LL_PWR_GPIO_BIT_15
1083 * @retval None
1084 */
LL_PWR_DisableGPIOPullUp(uint32_t GPIO,uint32_t GPIONumber)1085 __STATIC_INLINE void LL_PWR_DisableGPIOPullUp(uint32_t GPIO, uint32_t GPIONumber)
1086 {
1087 CLEAR_BIT(*((__IO uint32_t *)GPIO), GPIONumber);
1088 }
1089
1090 /**
1091 * @brief Check if GPIO pull-up state is enabled
1092 * @rmtoll PUCRA PU0-15 LL_PWR_IsEnabledGPIOPullUp\n
1093 * PUCRB PU0-15 LL_PWR_IsEnabledGPIOPullUp\n
1094 * PUCRC PU0-15 LL_PWR_IsEnabledGPIOPullUp\n
1095 * PUCRD PU0-15 LL_PWR_IsEnabledGPIOPullUp\n
1096 * PUCRE PU0-15 LL_PWR_IsEnabledGPIOPullUp\n
1097 * PUCRF PU0-13 LL_PWR_IsEnabledGPIOPullUp
1098 * @param GPIO This parameter can be one of the following values:
1099 * @arg @ref LL_PWR_GPIO_A
1100 * @arg @ref LL_PWR_GPIO_B
1101 * @arg @ref LL_PWR_GPIO_C
1102 * @arg @ref LL_PWR_GPIO_D
1103 * @arg @ref LL_PWR_GPIO_E (*)
1104 * @arg @ref LL_PWR_GPIO_F
1105 * @param GPIONumber This parameter can be one of the following values:
1106 * @arg @ref LL_PWR_GPIO_BIT_0
1107 * @arg @ref LL_PWR_GPIO_BIT_1
1108 * @arg @ref LL_PWR_GPIO_BIT_2
1109 * @arg @ref LL_PWR_GPIO_BIT_3
1110 * @arg @ref LL_PWR_GPIO_BIT_4
1111 * @arg @ref LL_PWR_GPIO_BIT_5
1112 * @arg @ref LL_PWR_GPIO_BIT_6
1113 * @arg @ref LL_PWR_GPIO_BIT_7
1114 * @arg @ref LL_PWR_GPIO_BIT_8
1115 * @arg @ref LL_PWR_GPIO_BIT_9
1116 * @arg @ref LL_PWR_GPIO_BIT_10
1117 * @arg @ref LL_PWR_GPIO_BIT_11
1118 * @arg @ref LL_PWR_GPIO_BIT_12
1119 * @arg @ref LL_PWR_GPIO_BIT_13
1120 * @arg @ref LL_PWR_GPIO_BIT_14
1121 * @arg @ref LL_PWR_GPIO_BIT_15
1122 * @retval State of bit (1 or 0).
1123 */
LL_PWR_IsEnabledGPIOPullUp(uint32_t GPIO,uint32_t GPIONumber)1124 __STATIC_INLINE uint32_t LL_PWR_IsEnabledGPIOPullUp(uint32_t GPIO, uint32_t GPIONumber)
1125 {
1126 return ((READ_BIT(*((__IO uint32_t *)GPIO), GPIONumber) == (GPIONumber)) ? 1UL : 0UL);
1127 }
1128
1129 /**
1130 * @brief Enable GPIO pull-down state in Standby and Shutdown modes
1131 * @rmtoll PDCRA PD0-15 LL_PWR_EnableGPIOPullDown\n
1132 * PDCRB PD0-15 LL_PWR_EnableGPIOPullDown\n
1133 * PDCRC PD0-15 LL_PWR_EnableGPIOPullDown\n
1134 * PDCRD PD0-15 LL_PWR_EnableGPIOPullDown\n
1135 * PDCRE PD0-15 LL_PWR_EnableGPIOPullDown\n
1136 * PDCRF PD0-13 LL_PWR_EnableGPIOPullDown
1137 * @param GPIO This parameter can be one of the following values:
1138 * @arg @ref LL_PWR_GPIO_A
1139 * @arg @ref LL_PWR_GPIO_B
1140 * @arg @ref LL_PWR_GPIO_C
1141 * @arg @ref LL_PWR_GPIO_D
1142 * @arg @ref LL_PWR_GPIO_E (*)
1143 * @arg @ref LL_PWR_GPIO_F
1144 * @param GPIONumber This parameter can be one of the following values:
1145 * @arg @ref LL_PWR_GPIO_BIT_0
1146 * @arg @ref LL_PWR_GPIO_BIT_1
1147 * @arg @ref LL_PWR_GPIO_BIT_2
1148 * @arg @ref LL_PWR_GPIO_BIT_3
1149 * @arg @ref LL_PWR_GPIO_BIT_4
1150 * @arg @ref LL_PWR_GPIO_BIT_5
1151 * @arg @ref LL_PWR_GPIO_BIT_6
1152 * @arg @ref LL_PWR_GPIO_BIT_7
1153 * @arg @ref LL_PWR_GPIO_BIT_8
1154 * @arg @ref LL_PWR_GPIO_BIT_9
1155 * @arg @ref LL_PWR_GPIO_BIT_10
1156 * @arg @ref LL_PWR_GPIO_BIT_11
1157 * @arg @ref LL_PWR_GPIO_BIT_12
1158 * @arg @ref LL_PWR_GPIO_BIT_13
1159 * @arg @ref LL_PWR_GPIO_BIT_14
1160 * @arg @ref LL_PWR_GPIO_BIT_15
1161 * @retval None
1162 */
LL_PWR_EnableGPIOPullDown(uint32_t GPIO,uint32_t GPIONumber)1163 __STATIC_INLINE void LL_PWR_EnableGPIOPullDown(uint32_t GPIO, uint32_t GPIONumber)
1164 {
1165 SET_BIT(*((__IO uint32_t *)(GPIO + 4U)), GPIONumber);
1166 }
1167
1168 /**
1169 * @brief Disable GPIO pull-down state in Standby and Shutdown modes
1170 * @rmtoll PDCRA PD0-15 LL_PWR_DisableGPIOPullDown\n
1171 * PDCRB PD0-15 LL_PWR_DisableGPIOPullDown\n
1172 * PDCRC PD0-15 LL_PWR_DisableGPIOPullDown\n
1173 * PDCRD PD0-15 LL_PWR_DisableGPIOPullDown\n
1174 * PDCRE PD0-15 LL_PWR_DisableGPIOPullDown\n
1175 * PDCRF PD0-13 LL_PWR_DisableGPIOPullDown
1176 * @param GPIO This parameter can be one of the following values:
1177 * @arg @ref LL_PWR_GPIO_A
1178 * @arg @ref LL_PWR_GPIO_B
1179 * @arg @ref LL_PWR_GPIO_C
1180 * @arg @ref LL_PWR_GPIO_D
1181 * @arg @ref LL_PWR_GPIO_E (*)
1182 * @arg @ref LL_PWR_GPIO_F
1183 * @param GPIONumber This parameter can be one of the following values:
1184 * @arg @ref LL_PWR_GPIO_BIT_0
1185 * @arg @ref LL_PWR_GPIO_BIT_1
1186 * @arg @ref LL_PWR_GPIO_BIT_2
1187 * @arg @ref LL_PWR_GPIO_BIT_3
1188 * @arg @ref LL_PWR_GPIO_BIT_4
1189 * @arg @ref LL_PWR_GPIO_BIT_5
1190 * @arg @ref LL_PWR_GPIO_BIT_6
1191 * @arg @ref LL_PWR_GPIO_BIT_7
1192 * @arg @ref LL_PWR_GPIO_BIT_8
1193 * @arg @ref LL_PWR_GPIO_BIT_9
1194 * @arg @ref LL_PWR_GPIO_BIT_10
1195 * @arg @ref LL_PWR_GPIO_BIT_11
1196 * @arg @ref LL_PWR_GPIO_BIT_12
1197 * @arg @ref LL_PWR_GPIO_BIT_13
1198 * @arg @ref LL_PWR_GPIO_BIT_14
1199 * @arg @ref LL_PWR_GPIO_BIT_15
1200 * @retval None
1201 */
LL_PWR_DisableGPIOPullDown(uint32_t GPIO,uint32_t GPIONumber)1202 __STATIC_INLINE void LL_PWR_DisableGPIOPullDown(uint32_t GPIO, uint32_t GPIONumber)
1203 {
1204 CLEAR_BIT(*((__IO uint32_t *)(GPIO + 4U)), GPIONumber);
1205 }
1206
1207 /**
1208 * @brief Check if GPIO pull-down state is enabled
1209 * @rmtoll PDCRA PD0-15 LL_PWR_IsEnabledGPIOPullDown\n
1210 * PDCRB PD0-15 LL_PWR_IsEnabledGPIOPullDown\n
1211 * PDCRC PD0-15 LL_PWR_IsEnabledGPIOPullDown\n
1212 * PDCRD PD0-15 LL_PWR_IsEnabledGPIOPullDown\n
1213 * PDCRE PD0-15 LL_PWR_IsEnabledGPIOPullDown\n
1214 * PDCRF PD0-13 LL_PWR_IsEnabledGPIOPullDown
1215 * @param GPIO This parameter can be one of the following values:
1216 * @arg @ref LL_PWR_GPIO_A
1217 * @arg @ref LL_PWR_GPIO_B
1218 * @arg @ref LL_PWR_GPIO_C
1219 * @arg @ref LL_PWR_GPIO_D
1220 * @arg @ref LL_PWR_GPIO_E (*)
1221 * @arg @ref LL_PWR_GPIO_F
1222 * @param GPIONumber This parameter can be one of the following values:
1223 * @arg @ref LL_PWR_GPIO_BIT_0
1224 * @arg @ref LL_PWR_GPIO_BIT_1
1225 * @arg @ref LL_PWR_GPIO_BIT_2
1226 * @arg @ref LL_PWR_GPIO_BIT_3
1227 * @arg @ref LL_PWR_GPIO_BIT_4
1228 * @arg @ref LL_PWR_GPIO_BIT_5
1229 * @arg @ref LL_PWR_GPIO_BIT_6
1230 * @arg @ref LL_PWR_GPIO_BIT_7
1231 * @arg @ref LL_PWR_GPIO_BIT_8
1232 * @arg @ref LL_PWR_GPIO_BIT_9
1233 * @arg @ref LL_PWR_GPIO_BIT_10
1234 * @arg @ref LL_PWR_GPIO_BIT_11
1235 * @arg @ref LL_PWR_GPIO_BIT_12
1236 * @arg @ref LL_PWR_GPIO_BIT_13
1237 * @arg @ref LL_PWR_GPIO_BIT_14
1238 * @arg @ref LL_PWR_GPIO_BIT_15
1239 * @retval State of bit (1 or 0).
1240 */
LL_PWR_IsEnabledGPIOPullDown(uint32_t GPIO,uint32_t GPIONumber)1241 __STATIC_INLINE uint32_t LL_PWR_IsEnabledGPIOPullDown(uint32_t GPIO, uint32_t GPIONumber)
1242 {
1243 return ((READ_BIT(*((__IO uint32_t *)(GPIO + 4U)), GPIONumber) == (GPIONumber)) ? 1UL : 0UL);
1244 }
1245
1246 /**
1247 * @}
1248 */
1249
1250 /** @defgroup PWR_LL_EF_FLAG_Management FLAG_Management
1251 * @{
1252 */
1253
1254 /**
1255 * @brief Get Internal Wake-up line Flag
1256 * @rmtoll SR1 WUFI LL_PWR_IsActiveFlag_InternWU
1257 * @retval State of bit (1 or 0).
1258 */
LL_PWR_IsActiveFlag_InternWU(void)1259 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_InternWU(void)
1260 {
1261 return ((READ_BIT(PWR->SR1, PWR_SR1_WUFI) == (PWR_SR1_WUFI)) ? 1UL : 0UL);
1262 }
1263
1264 /**
1265 * @brief Get Stand-By Flag
1266 * @rmtoll SR1 SBF LL_PWR_IsActiveFlag_SB
1267 * @retval State of bit (1 or 0).
1268 */
LL_PWR_IsActiveFlag_SB(void)1269 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_SB(void)
1270 {
1271 return ((READ_BIT(PWR->SR1, PWR_SR1_SBF) == (PWR_SR1_SBF)) ? 1UL : 0UL);
1272 }
1273
1274 /**
1275 * @brief Get Wake-up Flag 6
1276 * @rmtoll SR1 WUF6 LL_PWR_IsActiveFlag_WU6
1277 * @retval State of bit (1 or 0).
1278 */
LL_PWR_IsActiveFlag_WU6(void)1279 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU6(void)
1280 {
1281 return ((READ_BIT(PWR->SR1, PWR_SR1_WUF6) == (PWR_SR1_WUF6)) ? 1UL : 0UL);
1282 }
1283
1284 #if defined(PWR_CR3_EWUP5)
1285 /**
1286 * @brief Get Wake-up Flag 5
1287 * @rmtoll SR1 WUF5 LL_PWR_IsActiveFlag_WU5
1288 * @retval State of bit (1 or 0).
1289 */
LL_PWR_IsActiveFlag_WU5(void)1290 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU5(void)
1291 {
1292 return ((READ_BIT(PWR->SR1, PWR_SR1_WUF5) == (PWR_SR1_WUF5)) ? 1UL : 0UL);
1293 }
1294 #endif /* PWR_CR3_EWUP5 */
1295
1296 /**
1297 * @brief Get Wake-up Flag 4
1298 * @rmtoll SR1 WUF4 LL_PWR_IsActiveFlag_WU4
1299 * @retval State of bit (1 or 0).
1300 */
LL_PWR_IsActiveFlag_WU4(void)1301 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU4(void)
1302 {
1303 return ((READ_BIT(PWR->SR1, PWR_SR1_WUF4) == (PWR_SR1_WUF4)) ? 1UL : 0UL);
1304 }
1305
1306 #if defined(PWR_CR3_EWUP3)
1307 /**
1308 * @brief Get Wake-up Flag 3
1309 * @rmtoll SR1 WUF3 LL_PWR_IsActiveFlag_WU3
1310 * @retval State of bit (1 or 0).
1311 */
LL_PWR_IsActiveFlag_WU3(void)1312 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU3(void)
1313 {
1314 return ((READ_BIT(PWR->SR1, PWR_SR1_WUF3) == (PWR_SR1_WUF3)) ? 1UL : 0UL);
1315 }
1316 #endif /* PWR_CR3_EWUP3 */
1317
1318 /**
1319 * @brief Get Wake-up Flag 2
1320 * @rmtoll SR1 WUF2 LL_PWR_IsActiveFlag_WU2
1321 * @retval State of bit (1 or 0).
1322 */
LL_PWR_IsActiveFlag_WU2(void)1323 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU2(void)
1324 {
1325 return ((READ_BIT(PWR->SR1, PWR_SR1_WUF2) == (PWR_SR1_WUF2)) ? 1UL : 0UL);
1326 }
1327
1328 /**
1329 * @brief Get Wake-up Flag 1
1330 * @rmtoll SR1 WUF1 LL_PWR_IsActiveFlag_WU1
1331 * @retval State of bit (1 or 0).
1332 */
LL_PWR_IsActiveFlag_WU1(void)1333 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU1(void)
1334 {
1335 return ((READ_BIT(PWR->SR1, PWR_SR1_WUF1) == (PWR_SR1_WUF1)) ? 1UL : 0UL);
1336 }
1337
1338 /**
1339 * @brief Clear Stand-By Flag
1340 * @rmtoll SCR CSBF LL_PWR_ClearFlag_SB
1341 * @retval None
1342 */
LL_PWR_ClearFlag_SB(void)1343 __STATIC_INLINE void LL_PWR_ClearFlag_SB(void)
1344 {
1345 WRITE_REG(PWR->SCR, PWR_SCR_CSBF);
1346 }
1347
1348 /**
1349 * @brief Clear Wake-up Flags
1350 * @rmtoll SCR CWUF LL_PWR_ClearFlag_WU
1351 * @retval None
1352 */
LL_PWR_ClearFlag_WU(void)1353 __STATIC_INLINE void LL_PWR_ClearFlag_WU(void)
1354 {
1355 WRITE_REG(PWR->SCR, PWR_SCR_CWUF);
1356 }
1357
1358 /**
1359 * @brief Clear Wake-up Flag 6
1360 * @rmtoll SCR CWUF6 LL_PWR_ClearFlag_WU6
1361 * @retval None
1362 */
LL_PWR_ClearFlag_WU6(void)1363 __STATIC_INLINE void LL_PWR_ClearFlag_WU6(void)
1364 {
1365 WRITE_REG(PWR->SCR, PWR_SCR_CWUF6);
1366 }
1367
1368 #if defined(PWR_CR3_EWUP5)
1369 /**
1370 * @brief Clear Wake-up Flag 5
1371 * @rmtoll SCR CWUF5 LL_PWR_ClearFlag_WU5
1372 * @retval None
1373 */
LL_PWR_ClearFlag_WU5(void)1374 __STATIC_INLINE void LL_PWR_ClearFlag_WU5(void)
1375 {
1376 WRITE_REG(PWR->SCR, PWR_SCR_CWUF5);
1377 }
1378 #endif /* PWR_CR3_EWUP5 */
1379
1380 /**
1381 * @brief Clear Wake-up Flag 4
1382 * @rmtoll SCR CWUF4 LL_PWR_ClearFlag_WU4
1383 * @retval None
1384 */
LL_PWR_ClearFlag_WU4(void)1385 __STATIC_INLINE void LL_PWR_ClearFlag_WU4(void)
1386 {
1387 WRITE_REG(PWR->SCR, PWR_SCR_CWUF4);
1388 }
1389
1390 #if defined(PWR_CR3_EWUP3)
1391 /**
1392 * @brief Clear Wake-up Flag 3
1393 * @rmtoll SCR CWUF3 LL_PWR_ClearFlag_WU3
1394 * @retval None
1395 */
LL_PWR_ClearFlag_WU3(void)1396 __STATIC_INLINE void LL_PWR_ClearFlag_WU3(void)
1397 {
1398 WRITE_REG(PWR->SCR, PWR_SCR_CWUF3);
1399 }
1400 #endif /* PWR_CR3_EWUP3 */
1401
1402 /**
1403 * @brief Clear Wake-up Flag 2
1404 * @rmtoll SCR CWUF2 LL_PWR_ClearFlag_WU2
1405 * @retval None
1406 */
LL_PWR_ClearFlag_WU2(void)1407 __STATIC_INLINE void LL_PWR_ClearFlag_WU2(void)
1408 {
1409 WRITE_REG(PWR->SCR, PWR_SCR_CWUF2);
1410 }
1411
1412 /**
1413 * @brief Clear Wake-up Flag 1
1414 * @rmtoll SCR CWUF1 LL_PWR_ClearFlag_WU1
1415 * @retval None
1416 */
LL_PWR_ClearFlag_WU1(void)1417 __STATIC_INLINE void LL_PWR_ClearFlag_WU1(void)
1418 {
1419 WRITE_REG(PWR->SCR, PWR_SCR_CWUF1);
1420 }
1421
1422 #if defined (PWR_PVM_SUPPORT)
1423 /**
1424 * @brief Indicate whether VDD voltage is below or above the selected PVD
1425 * threshold
1426 * @rmtoll SR2 PVDMO_USB LL_PWR_IsActiveFlag_PVMOUSB
1427 * @retval State of bit (1 or 0).
1428 */
LL_PWR_IsActiveFlag_PVMOUSB(void)1429 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_PVMOUSB(void)
1430 {
1431 return ((READ_BIT(PWR->SR2, PWR_SR2_PVMO_USB) == (PWR_SR2_PVMO_USB)) ? 1UL : 0UL);
1432 }
1433 #endif /* PWR_PVM_SUPPORT */
1434
1435 #if defined(PWR_SR2_PVDO)
1436 /**
1437 * @brief Indicate whether VDD voltage is below or above the selected PVD
1438 * threshold
1439 * @rmtoll SR2 PVDO LL_PWR_IsActiveFlag_PVDO
1440 * @retval State of bit (1 or 0).
1441 */
LL_PWR_IsActiveFlag_PVDO(void)1442 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_PVDO(void)
1443 {
1444 return ((READ_BIT(PWR->SR2, PWR_SR2_PVDO) == (PWR_SR2_PVDO)) ? 1UL : 0UL);
1445 }
1446 #endif /* PWR_SR2_PVDO */
1447
1448 /**
1449 * @brief Indicate whether the regulator is ready in the selected voltage
1450 * range or if its output voltage is still changing to the required
1451 * voltage level
1452 * @note: Take care, return value "0" means the regulator is ready.
1453 * Return value "1" means the output voltage range is still changing.
1454 * @rmtoll SR2 VOSF LL_PWR_IsActiveFlag_VOS
1455 * @retval State of bit (1 or 0).
1456 */
LL_PWR_IsActiveFlag_VOS(void)1457 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_VOS(void)
1458 {
1459 return ((READ_BIT(PWR->SR2, PWR_SR2_VOSF) == (PWR_SR2_VOSF)) ? 1UL : 0UL);
1460 }
1461
1462 /**
1463 * @brief Indicate whether the regulator is ready in main mode or is in
1464 * low-power mode
1465 * @note: Take care, return value "0" means regulator is ready in main mode
1466 * Return value "1" means regulator is in low-power mode (LPR)
1467 * @rmtoll SR2 REGLPF LL_PWR_IsActiveFlag_REGLPF
1468 * @retval State of bit (1 or 0).
1469 */
LL_PWR_IsActiveFlag_REGLPF(void)1470 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_REGLPF(void)
1471 {
1472 return ((READ_BIT(PWR->SR2, PWR_SR2_REGLPF) == (PWR_SR2_REGLPF)) ? 1UL : 0UL);
1473 }
1474
1475 /**
1476 * @brief Indicate whether or not the low-power regulator is ready
1477 * @rmtoll SR2 REGLPS LL_PWR_IsActiveFlag_REGLPS
1478 * @retval State of bit (1 or 0).
1479 */
LL_PWR_IsActiveFlag_REGLPS(void)1480 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_REGLPS(void)
1481 {
1482 return ((READ_BIT(PWR->SR2, PWR_SR2_REGLPS) == (PWR_SR2_REGLPS)) ? 1UL : 0UL);
1483 }
1484
1485 /**
1486 * @brief Indicate whether or not the flash is ready to be accessed
1487 * @rmtoll SR2 FLASH_RDY LL_PWR_IsActiveFlag_FLASH_RDY
1488 * @retval State of bit (1 or 0).
1489 */
LL_PWR_IsActiveFlag_FLASH_RDY(void)1490 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_FLASH_RDY(void)
1491 {
1492 return ((READ_BIT(PWR->SR2, PWR_SR2_FLASH_RDY) == (PWR_SR2_FLASH_RDY)) ? 1UL : 0UL);
1493 }
1494
1495
1496 /**
1497 * @}
1498 */
1499
1500 #if defined(USE_FULL_LL_DRIVER)
1501 /** @defgroup PWR_LL_EF_Init De-initialization function
1502 * @{
1503 */
1504 ErrorStatus LL_PWR_DeInit(void);
1505 /**
1506 * @}
1507 */
1508 #endif /* USE_FULL_LL_DRIVER */
1509
1510 /**
1511 * @}
1512 */
1513
1514 /**
1515 * @}
1516 */
1517
1518 #endif /* defined(PWR) */
1519
1520 /**
1521 * @}
1522 */
1523
1524 #ifdef __cplusplus
1525 }
1526 #endif
1527
1528 #endif /* STM32G0xx_LL_PWR_H */
1529