1 /**
2 ******************************************************************************
3 * @file stm32c0xx_ll_pwr.h
4 * @author MCD Application Team
5 * @brief Header file of PWR LL module.
6 ******************************************************************************
7 * @attention
8 *
9 * Copyright (c) 2022 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 STM32C0xx_LL_PWR_H
21 #define STM32C0xx_LL_PWR_H
22
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26
27 /* Includes ------------------------------------------------------------------*/
28 #include "stm32c0xx.h"
29
30 /** @addtogroup STM32C0xx_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 #if defined(PWR_SCR_CWUF5)
61 #define LL_PWR_SCR_CWUF5 PWR_SCR_CWUF5
62 #endif /* PWR_SCR_CWUF5 */
63 #define LL_PWR_SCR_CWUF4 PWR_SCR_CWUF4
64 #define LL_PWR_SCR_CWUF3 PWR_SCR_CWUF3
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 #if defined(PWR_SR1_WUF5)
79 #define LL_PWR_SR1_WUF5 PWR_SR1_WUF5
80 #endif /* PWR_SR1_WUF5 */
81 #define LL_PWR_SR1_WUF4 PWR_SR1_WUF4
82 #define LL_PWR_SR1_WUF3 PWR_SR1_WUF3
83 #define LL_PWR_SR1_WUF2 PWR_SR1_WUF2
84 #define LL_PWR_SR1_WUF1 PWR_SR1_WUF1
85 /**
86 * @}
87 */
88
89
90 /** @defgroup PWR_LL_EC_MODE_PWR MODE PWR
91 * @{
92 */
93 #define LL_PWR_MODE_STOP0 (0x00000000UL)
94 #define LL_PWR_MODE_STANDBY (PWR_CR1_LPMS_1 | PWR_CR1_LPMS_0)
95 #define LL_PWR_MODE_SHUTDOWN (PWR_CR1_LPMS_2)
96 /**
97 * @}
98 */
99
100 #if defined(PWR_PVM_SUPPORT)
101 /** @defgroup PWR_LL_EC_PVM_IP PVM_IP
102 * @{
103 */
104 #define LL_PWR_PVM_USB PWR_CR2_PVMEN_USB /*!< Peripheral Voltage Monitoring enable for USB peripheral:
105 Enable to keep the USB peripheral voltage monitoring
106 under control (power domain Vddio2) */
107 /**
108 * @}
109 */
110 #endif /* PWR_PVM_SUPPORT */
111
112 /** @defgroup PWR_LL_EC_WAKEUP WAKEUP
113 * @{
114 */
115 #define LL_PWR_WAKEUP_PIN1 (PWR_CR3_EWUP1)
116 #define LL_PWR_WAKEUP_PIN2 (PWR_CR3_EWUP2)
117 #define LL_PWR_WAKEUP_PIN3 (PWR_CR3_EWUP3)
118 #define LL_PWR_WAKEUP_PIN4 (PWR_CR3_EWUP4)
119 #if defined(PWR_CR3_EWUP5)
120 #define LL_PWR_WAKEUP_PIN5 (PWR_CR3_EWUP5)
121 #endif /* PWR_CR3_EWUP5 */
122 #define LL_PWR_WAKEUP_PIN6 (PWR_CR3_EWUP6)
123 /**
124 * @}
125 */
126
127 /** @defgroup PWR_LL_EC_GPIO GPIO
128 * @{
129 */
130 #define LL_PWR_GPIO_A ((uint32_t)(&(PWR->PUCRA)))
131 #define LL_PWR_GPIO_B ((uint32_t)(&(PWR->PUCRB)))
132 #define LL_PWR_GPIO_C ((uint32_t)(&(PWR->PUCRC)))
133 #if defined(GPIOD)
134 #define LL_PWR_GPIO_D ((uint32_t)(&(PWR->PUCRD)))
135 #endif /* GPIOD */
136 #define LL_PWR_GPIO_F ((uint32_t)(&(PWR->PUCRF)))
137 /**
138 * @}
139 */
140
141 /** @defgroup PWR_LL_EC_GPIO_BIT GPIO BIT
142 * @{
143 */
144 #define LL_PWR_GPIO_BIT_0 0x00000001U
145 #define LL_PWR_GPIO_BIT_1 0x00000002U
146 #define LL_PWR_GPIO_BIT_2 0x00000004U
147 #define LL_PWR_GPIO_BIT_3 0x00000008U
148 #define LL_PWR_GPIO_BIT_4 0x00000010U
149 #define LL_PWR_GPIO_BIT_5 0x00000020U
150 #define LL_PWR_GPIO_BIT_6 0x00000040U
151 #define LL_PWR_GPIO_BIT_7 0x00000080U
152 #define LL_PWR_GPIO_BIT_8 0x00000100U
153 #define LL_PWR_GPIO_BIT_9 0x00000200U
154 #define LL_PWR_GPIO_BIT_10 0x00000400U
155 #define LL_PWR_GPIO_BIT_11 0x00000800U
156 #define LL_PWR_GPIO_BIT_12 0x00001000U
157 #define LL_PWR_GPIO_BIT_13 0x00002000U
158 #define LL_PWR_GPIO_BIT_14 0x00004000U
159 #define LL_PWR_GPIO_BIT_15 0x00008000U
160 /**
161 * @}
162 */
163
164 /** @defgroup PWR_LL_EC_BKP BACKUP
165 * @{
166 */
167 #define LL_PWR_BKP_NUMBER 4U
168 #define LL_PWR_BKP_DR0 0U
169 #define LL_PWR_BKP_DR1 1U
170 #define LL_PWR_BKP_DR2 2U
171 #define LL_PWR_BKP_DR3 3U
172
173 /**
174 * @}
175 */
176
177 /**
178 * @}
179 */
180
181 /* Exported macro ------------------------------------------------------------*/
182 /** @defgroup PWR_LL_Exported_Macros PWR Exported Macros
183 * @{
184 */
185
186 /** @defgroup PWR_LL_EM_WRITE_READ Common Write and read registers Macros
187 * @{
188 */
189
190 /**
191 * @brief Write a value in PWR register
192 * @param __REG__ Register to be written
193 * @param __VALUE__ Value to be written in the register
194 * @retval None
195 */
196 #define LL_PWR_WriteReg(__REG__, __VALUE__) WRITE_REG(PWR->__REG__, (__VALUE__))
197
198 /**
199 * @brief Read a value in PWR register
200 * @param __REG__ Register to be read
201 * @retval Register value
202 */
203 #define LL_PWR_ReadReg(__REG__) READ_REG(PWR->__REG__)
204 /**
205 * @}
206 */
207
208 /**
209 * @}
210 */
211
212
213 /* Exported functions --------------------------------------------------------*/
214 /** @defgroup PWR_LL_Exported_Functions PWR Exported Functions
215 * @{
216 */
217
218 /** @defgroup PWR_LL_EF_Configuration Configuration
219 * @{
220 */
221
222 /**
223 * @brief Enable Flash Power-down mode during sleep mode
224 * @rmtoll CR1 FPD_SLP LL_PWR_EnableFlashPowerDownInSleep
225 * @retval None
226 */
LL_PWR_EnableFlashPowerDownInSleep(void)227 __STATIC_INLINE void LL_PWR_EnableFlashPowerDownInSleep(void)
228 {
229 SET_BIT(PWR->CR1, PWR_CR1_FPD_SLP);
230 }
231
232 /**
233 * @brief Disable Flash Power-down mode during sleep mode
234 * @rmtoll CR1 FPD_SLP LL_PWR_DisableFlashPowerDownInSleep
235 * @retval None
236 */
LL_PWR_DisableFlashPowerDownInSleep(void)237 __STATIC_INLINE void LL_PWR_DisableFlashPowerDownInSleep(void)
238 {
239 CLEAR_BIT(PWR->CR1, PWR_CR1_FPD_SLP);
240 }
241
242 /**
243 * @brief Check if flash power-down mode during sleep mode domain is enabled
244 * @rmtoll CR1 FPD_SLP LL_PWR_IsEnableFlashPowerDownInSleep
245 * @retval State of bit (1 or 0).
246 */
LL_PWR_IsEnableFlashPowerDownInSleep(void)247 __STATIC_INLINE uint32_t LL_PWR_IsEnableFlashPowerDownInSleep(void)
248 {
249 return ((READ_BIT(PWR->CR1, PWR_CR1_FPD_SLP) == (PWR_CR1_FPD_SLP)) ? 1UL : 0UL);
250 }
251
252 /**
253 * @brief Enable Flash Power-down mode during stop mode
254 * @rmtoll CR1 FPD_STOP LL_PWR_EnableFlashPowerDownInStop
255 * @retval None
256 */
LL_PWR_EnableFlashPowerDownInStop(void)257 __STATIC_INLINE void LL_PWR_EnableFlashPowerDownInStop(void)
258 {
259 SET_BIT(PWR->CR1, PWR_CR1_FPD_STOP);
260 }
261
262 /**
263 * @brief Disable Flash Power-down mode during stop mode
264 * @rmtoll CR1 FPD_STOP LL_PWR_DisableFlashPowerDownInStop
265 * @retval None
266 */
LL_PWR_DisableFlashPowerDownInStop(void)267 __STATIC_INLINE void LL_PWR_DisableFlashPowerDownInStop(void)
268 {
269 CLEAR_BIT(PWR->CR1, PWR_CR1_FPD_STOP);
270 }
271
272 /**
273 * @brief Check if flash power-down mode during stop mode domain is enabled
274 * @rmtoll CR1 FPD_STOP LL_PWR_IsEnableFlashPowerDownInStop
275 * @retval State of bit (1 or 0).
276 */
LL_PWR_IsEnableFlashPowerDownInStop(void)277 __STATIC_INLINE uint32_t LL_PWR_IsEnableFlashPowerDownInStop(void)
278 {
279 return ((READ_BIT(PWR->CR1, PWR_CR1_FPD_STOP) == (PWR_CR1_FPD_STOP)) ? 1UL : 0UL);
280 }
281
282 #if defined(PWR_PVM_SUPPORT)
283 /**
284 * @brief Enable VDDIO2 supply
285 * @rmtoll CR2 PVM_VDDIO2 LL_PWR_EnableVddIO2
286 * @retval None
287 */
LL_PWR_EnableVddIO2(void)288 __STATIC_INLINE void LL_PWR_EnableVddIO2(void)
289 {
290 SET_BIT(PWR->CR2, PWR_CR2_PVM_VDDIO2_1);
291 }
292
293 /**
294 * @brief Disable VDDIO2 supply
295 * @rmtoll CR2 PVM_VDDIO2 LL_PWR_DisableVddIO2
296 * @retval None
297 */
LL_PWR_DisableVddIO2(void)298 __STATIC_INLINE void LL_PWR_DisableVddIO2(void)
299 {
300 CLEAR_BIT(PWR->CR2, PWR_CR2_PVM_VDDIO2_1);
301 }
302
303 /**
304 * @brief Check if VDDIO2 supply is enabled
305 * @rmtoll CR2 PVM_VDDIO2 LL_PWR_IsEnabledVddIO2
306 * @retval State of bit (1 or 0).
307 */
LL_PWR_IsEnabledVddIO2(void)308 __STATIC_INLINE uint32_t LL_PWR_IsEnabledVddIO2(void)
309 {
310 return ((READ_BIT(PWR->CR2, PWR_CR2_PVM_VDDIO2_1) == (PWR_CR2_PVM_VDDIO2_1)) ? 1UL : 0UL);
311 }
312
313 /**
314 * @brief Enable the Power Voltage Monitoring on a peripheral
315 * @rmtoll CR2 PVMUSB LL_PWR_EnablePVM
316 * @param PeriphVoltage This parameter can be one of the following values:
317 * @arg @ref LL_PWR_PVM_USB (*)
318 *
319 * @note (*) Availability depends on devices
320 * @retval None
321 */
LL_PWR_EnablePVM(uint32_t PeriphVoltage)322 __STATIC_INLINE void LL_PWR_EnablePVM(uint32_t PeriphVoltage)
323 {
324 SET_BIT(PWR->CR2, PeriphVoltage);
325 }
326
327 /**
328 * @brief Disable the Power Voltage Monitoring on a peripheral
329 * @rmtoll CR2 PVMUSB LL_PWR_DisablePVM
330 * @param PeriphVoltage This parameter can be one of the following values:
331 * @arg @ref LL_PWR_PVM_USB (*)
332 *
333 * @note (*) Availability depends on devices
334 * @retval None
335 */
LL_PWR_DisablePVM(uint32_t PeriphVoltage)336 __STATIC_INLINE void LL_PWR_DisablePVM(uint32_t PeriphVoltage)
337 {
338 CLEAR_BIT(PWR->CR2, PeriphVoltage);
339 }
340
341 /**
342 * @brief Check if Power Voltage Monitoring is enabled on a peripheral
343 * @rmtoll CR2 PVMUSB LL_PWR_IsEnabledPVM
344 * @param PeriphVoltage This parameter can be one of the following values:
345 * @arg @ref LL_PWR_PVM_USB (*)
346
347 * @note (*) Availability depends on devices
348 * @retval State of bit (1 or 0).
349 */
LL_PWR_IsEnabledPVM(uint32_t PeriphVoltage)350 __STATIC_INLINE uint32_t LL_PWR_IsEnabledPVM(uint32_t PeriphVoltage)
351 {
352 return ((READ_BIT(PWR->CR2, PeriphVoltage) == (PeriphVoltage)) ? 1UL : 0UL);
353 }
354 #endif /* PWR_PVM_SUPPORT */
355
356 /**
357 * @brief Set Low-Power mode
358 * @rmtoll CR1 LPMS LL_PWR_SetPowerMode
359 * @param LowPowerMode This parameter can be one of the following values:
360 * @arg @ref LL_PWR_MODE_STOP0
361 * @arg @ref LL_PWR_MODE_STANDBY
362 * @arg @ref LL_PWR_MODE_SHUTDOWN
363 * @retval None
364 */
LL_PWR_SetPowerMode(uint32_t LowPowerMode)365 __STATIC_INLINE void LL_PWR_SetPowerMode(uint32_t LowPowerMode)
366 {
367 MODIFY_REG(PWR->CR1, PWR_CR1_LPMS, LowPowerMode);
368 }
369
370 /**
371 * @brief Get Low-Power mode
372 * @rmtoll CR1 LPMS LL_PWR_GetPowerMode
373 * @retval Returned value can be one of the following values:
374 * @arg @ref LL_PWR_MODE_STOP0
375 * @arg @ref LL_PWR_MODE_STANDBY
376 * @arg @ref LL_PWR_MODE_SHUTDOWN
377 */
LL_PWR_GetPowerMode(void)378 __STATIC_INLINE uint32_t LL_PWR_GetPowerMode(void)
379 {
380 return (uint32_t)(READ_BIT(PWR->CR1, PWR_CR1_LPMS));
381 }
382
383 /**
384 * @brief Enable Internal Wake-up line
385 * @rmtoll CR3 EIWF LL_PWR_EnableInternWU
386 * @retval None
387 */
LL_PWR_EnableInternWU(void)388 __STATIC_INLINE void LL_PWR_EnableInternWU(void)
389 {
390 SET_BIT(PWR->CR3, PWR_CR3_EIWUL);
391 }
392
393 /**
394 * @brief Disable Internal Wake-up line
395 * @rmtoll CR3 EIWF LL_PWR_DisableInternWU
396 * @retval None
397 */
LL_PWR_DisableInternWU(void)398 __STATIC_INLINE void LL_PWR_DisableInternWU(void)
399 {
400 CLEAR_BIT(PWR->CR3, PWR_CR3_EIWUL);
401 }
402
403 /**
404 * @brief Check if Internal Wake-up line is enabled
405 * @rmtoll CR3 EIWF LL_PWR_IsEnabledInternWU
406 * @retval State of bit (1 or 0).
407 */
LL_PWR_IsEnabledInternWU(void)408 __STATIC_INLINE uint32_t LL_PWR_IsEnabledInternWU(void)
409 {
410 return ((READ_BIT(PWR->CR3, PWR_CR3_EIWUL) == (PWR_CR3_EIWUL)) ? 1UL : 0UL);
411 }
412
413 /**
414 * @brief Enable pull-up and pull-down configuration
415 * @rmtoll CR3 APC LL_PWR_EnablePUPDCfg
416 * @retval None
417 */
LL_PWR_EnablePUPDCfg(void)418 __STATIC_INLINE void LL_PWR_EnablePUPDCfg(void)
419 {
420 SET_BIT(PWR->CR3, PWR_CR3_APC);
421 }
422
423 /**
424 * @brief Disable pull-up and pull-down configuration
425 * @rmtoll CR3 APC LL_PWR_DisablePUPDCfg
426 * @retval None
427 */
LL_PWR_DisablePUPDCfg(void)428 __STATIC_INLINE void LL_PWR_DisablePUPDCfg(void)
429 {
430 CLEAR_BIT(PWR->CR3, PWR_CR3_APC);
431 }
432
433 /**
434 * @brief Check if pull-up and pull-down configuration is enabled
435 * @rmtoll CR3 APC LL_PWR_IsEnabledPUPDCfg
436 * @retval State of bit (1 or 0).
437 */
LL_PWR_IsEnabledPUPDCfg(void)438 __STATIC_INLINE uint32_t LL_PWR_IsEnabledPUPDCfg(void)
439 {
440 return ((READ_BIT(PWR->CR3, PWR_CR3_APC) == (PWR_CR3_APC)) ? 1UL : 0UL);
441 }
442
443 /**
444 * @brief Enable the WakeUp PINx functionality
445 * @rmtoll CR3 EWUP1 LL_PWR_EnableWakeUpPin\n
446 * CR3 EWUP2 LL_PWR_EnableWakeUpPin\n
447 * CR3 EWUP3 LL_PWR_EnableWakeUpPin\n
448 * CR3 EWUP4 LL_PWR_EnableWakeUpPin\n
449 * CR3 EWUP5 LL_PWR_EnableWakeUpPin (*)\n
450 * CR3 EWUP6 LL_PWR_EnableWakeUpPin
451 * @param WakeUpPin This parameter can be one of the following values:
452 * @arg @ref LL_PWR_WAKEUP_PIN1
453 * @arg @ref LL_PWR_WAKEUP_PIN2
454 * @arg @ref LL_PWR_WAKEUP_PIN3
455 * @arg @ref LL_PWR_WAKEUP_PIN4
456 * @arg @ref LL_PWR_WAKEUP_PIN5 (*)
457 * @arg @ref LL_PWR_WAKEUP_PIN6
458 * @note (*) Availability depends on devices
459 * @retval None
460 */
LL_PWR_EnableWakeUpPin(uint32_t WakeUpPin)461 __STATIC_INLINE void LL_PWR_EnableWakeUpPin(uint32_t WakeUpPin)
462 {
463 SET_BIT(PWR->CR3, WakeUpPin);
464 }
465
466 /**
467 * @brief Disable the WakeUp PINx functionality
468 * @rmtoll CR3 EWUP1 LL_PWR_DisableWakeUpPin\n
469 * CR3 EWUP2 LL_PWR_DisableWakeUpPin\n
470 * CR3 EWUP3 LL_PWR_DisableWakeUpPin\n
471 * CR3 EWUP4 LL_PWR_DisableWakeUpPin\n
472 * CR3 EWUP5 LL_PWR_DisableWakeUpPin (*)\n
473 * CR3 EWUP6 LL_PWR_DisableWakeUpPin
474 * @param WakeUpPin This parameter can be one of the following values:
475 * @arg @ref LL_PWR_WAKEUP_PIN1
476 * @arg @ref LL_PWR_WAKEUP_PIN2
477 * @arg @ref LL_PWR_WAKEUP_PIN3
478 * @arg @ref LL_PWR_WAKEUP_PIN4
479 * @arg @ref LL_PWR_WAKEUP_PIN5 (*)
480 * @arg @ref LL_PWR_WAKEUP_PIN6
481 * @note (*) Availability depends on devices
482 * @retval None
483 */
LL_PWR_DisableWakeUpPin(uint32_t WakeUpPin)484 __STATIC_INLINE void LL_PWR_DisableWakeUpPin(uint32_t WakeUpPin)
485 {
486 CLEAR_BIT(PWR->CR3, WakeUpPin);
487 }
488
489 /**
490 * @brief Check if the WakeUp PINx functionality is enabled
491 * @rmtoll CR3 EWUP1 LL_PWR_IsEnabledWakeUpPin\n
492 * CR3 EWUP2 LL_PWR_IsEnabledWakeUpPin\n
493 * CR3 EWUP3 LL_PWR_IsEnabledWakeUpPin\n
494 * CR3 EWUP4 LL_PWR_IsEnabledWakeUpPin\n
495 * CR3 EWUP5 LL_PWR_IsEnabledWakeUpPin (*)\n
496 * CR3 EWUP6 LL_PWR_IsEnabledWakeUpPin
497 * @param WakeUpPin This parameter can be one of the following values:
498 * @arg @ref LL_PWR_WAKEUP_PIN1
499 * @arg @ref LL_PWR_WAKEUP_PIN2
500 * @arg @ref LL_PWR_WAKEUP_PIN3
501 * @arg @ref LL_PWR_WAKEUP_PIN4
502 * @arg @ref LL_PWR_WAKEUP_PIN5 (*)
503 * @arg @ref LL_PWR_WAKEUP_PIN6
504 * @note (*) Availability depends on devices
505 * @retval State of bit (1 or 0).
506 */
LL_PWR_IsEnabledWakeUpPin(uint32_t WakeUpPin)507 __STATIC_INLINE uint32_t LL_PWR_IsEnabledWakeUpPin(uint32_t WakeUpPin)
508 {
509 return ((READ_BIT(PWR->CR3, WakeUpPin) == (WakeUpPin)) ? 1UL : 0UL);
510 }
511
512 /**
513 * @brief Set the Wake-Up pin polarity low for the event detection
514 * @rmtoll CR4 WP1 LL_PWR_SetWakeUpPinPolarityLow\n
515 * CR4 WP2 LL_PWR_SetWakeUpPinPolarityLow\n
516 * CR4 WP3 LL_PWR_SetWakeUpPinPolarityLow\n
517 * CR4 WP4 LL_PWR_SetWakeUpPinPolarityLow\n
518 * CR4 WP5 LL_PWR_SetWakeUpPinPolarityLow (*)\n
519 * CR4 WP6 LL_PWR_SetWakeUpPinPolarityLow\n
520 * @param WakeUpPin This parameter can be one of the following values:
521 * @arg @ref LL_PWR_WAKEUP_PIN1
522 * @arg @ref LL_PWR_WAKEUP_PIN2
523 * @arg @ref LL_PWR_WAKEUP_PIN3
524 * @arg @ref LL_PWR_WAKEUP_PIN4
525 * @arg @ref LL_PWR_WAKEUP_PIN5 (*)
526 * @arg @ref LL_PWR_WAKEUP_PIN6
527 * @note (*) Availability depends on devices
528 * @retval None
529 */
LL_PWR_SetWakeUpPinPolarityLow(uint32_t WakeUpPin)530 __STATIC_INLINE void LL_PWR_SetWakeUpPinPolarityLow(uint32_t WakeUpPin)
531 {
532 SET_BIT(PWR->CR4, WakeUpPin);
533 }
534
535 /**
536 * @brief Set the Wake-Up pin polarity high for the event detection
537 * @rmtoll CR4 WP1 LL_PWR_SetWakeUpPinPolarityHigh\n
538 * CR4 WP2 LL_PWR_SetWakeUpPinPolarityHigh\n
539 * CR4 WP3 LL_PWR_SetWakeUpPinPolarityHigh\n
540 * CR4 WP4 LL_PWR_SetWakeUpPinPolarityHigh\n
541 * CR4 WP5 LL_PWR_SetWakeUpPinPolarityHigh (*)\n
542 * CR4 WP6 LL_PWR_SetWakeUpPinPolarityHigh
543 * @param WakeUpPin This parameter can be one of the following values:
544 * @arg @ref LL_PWR_WAKEUP_PIN1
545 * @arg @ref LL_PWR_WAKEUP_PIN2
546 * @arg @ref LL_PWR_WAKEUP_PIN3
547 * @arg @ref LL_PWR_WAKEUP_PIN4
548 * @arg @ref LL_PWR_WAKEUP_PIN5 (*)
549 * @arg @ref LL_PWR_WAKEUP_PIN6
550 * @note (*) Availability depends on devices
551 * @retval None
552 */
LL_PWR_SetWakeUpPinPolarityHigh(uint32_t WakeUpPin)553 __STATIC_INLINE void LL_PWR_SetWakeUpPinPolarityHigh(uint32_t WakeUpPin)
554 {
555 CLEAR_BIT(PWR->CR4, WakeUpPin);
556 }
557
558 /**
559 * @brief Get the Wake-Up pin polarity for the event detection
560 * @rmtoll CR4 WP1 LL_PWR_IsWakeUpPinPolarityLow\n
561 * CR4 WP2 LL_PWR_IsWakeUpPinPolarityLow\n
562 * CR4 WP3 LL_PWR_IsWakeUpPinPolarityLow\n
563 * CR4 WP4 LL_PWR_IsWakeUpPinPolarityLow\n
564 * CR4 WP5 LL_PWR_IsWakeUpPinPolarityLow (*)\n
565 * CR4 WP6 LL_PWR_IsWakeUpPinPolarityLow
566 * @param WakeUpPin This parameter can be one of the following values:
567 * @arg @ref LL_PWR_WAKEUP_PIN1
568 * @arg @ref LL_PWR_WAKEUP_PIN2
569 * @arg @ref LL_PWR_WAKEUP_PIN3
570 * @arg @ref LL_PWR_WAKEUP_PIN4
571 * @arg @ref LL_PWR_WAKEUP_PIN5 (*)
572 * @arg @ref LL_PWR_WAKEUP_PIN6
573 * @note (*) Availability depends on devices
574 * @retval State of bit (1 or 0).
575 */
LL_PWR_IsWakeUpPinPolarityLow(uint32_t WakeUpPin)576 __STATIC_INLINE uint32_t LL_PWR_IsWakeUpPinPolarityLow(uint32_t WakeUpPin)
577 {
578 return ((READ_BIT(PWR->CR4, WakeUpPin) == (WakeUpPin)) ? 1UL : 0UL);
579 }
580
581 /**
582 * @brief Enable GPIO pull-up state in Standby and Shutdown modes
583 * @rmtoll PUCRA PU0-15 LL_PWR_EnableGPIOPullUp\n
584 * PUCRB PU0-15 LL_PWR_EnableGPIOPullUp\n
585 * PUCRC PU0-15 LL_PWR_EnableGPIOPullUp\n
586 * PUCRD PU0-15 LL_PWR_EnableGPIOPullUp (*)\n
587 * PUCRF PU0-15 LL_PWR_EnableGPIOPullUp
588 * @note (*) Port D availability depends on devices
589 * @param GPIO This parameter can be one of the following values:
590 * @arg @ref LL_PWR_GPIO_A
591 * @arg @ref LL_PWR_GPIO_B
592 * @arg @ref LL_PWR_GPIO_C
593 * @arg @ref LL_PWR_GPIO_D (*)
594 * @arg @ref LL_PWR_GPIO_F
595 * @note (*) Port D availability depends on devices
596 * @param GPIONumber This parameter can be one of the following values:
597 * @arg @ref LL_PWR_GPIO_BIT_0
598 * @arg @ref LL_PWR_GPIO_BIT_1
599 * @arg @ref LL_PWR_GPIO_BIT_2
600 * @arg @ref LL_PWR_GPIO_BIT_3
601 * @arg @ref LL_PWR_GPIO_BIT_4
602 * @arg @ref LL_PWR_GPIO_BIT_5
603 * @arg @ref LL_PWR_GPIO_BIT_6
604 * @arg @ref LL_PWR_GPIO_BIT_7
605 * @arg @ref LL_PWR_GPIO_BIT_8
606 * @arg @ref LL_PWR_GPIO_BIT_9
607 * @arg @ref LL_PWR_GPIO_BIT_10
608 * @arg @ref LL_PWR_GPIO_BIT_11
609 * @arg @ref LL_PWR_GPIO_BIT_12
610 * @arg @ref LL_PWR_GPIO_BIT_13
611 * @arg @ref LL_PWR_GPIO_BIT_14
612 * @arg @ref LL_PWR_GPIO_BIT_15
613 * @retval None
614 */
LL_PWR_EnableGPIOPullUp(uint32_t GPIO,uint32_t GPIONumber)615 __STATIC_INLINE void LL_PWR_EnableGPIOPullUp(uint32_t GPIO, uint32_t GPIONumber)
616 {
617 SET_BIT(*((__IO uint32_t *)GPIO), GPIONumber);
618 }
619
620 /**
621 * @brief Disable GPIO pull-up state in Standby and Shutdown modes
622 * @rmtoll PUCRA PU0-15 LL_PWR_DisableGPIOPullUp\n
623 * PUCRB PU0-15 LL_PWR_DisableGPIOPullUp\n
624 * PUCRC PU0-15 LL_PWR_DisableGPIOPullUp\n
625 * PUCRD PU0-15 LL_PWR_DisableGPIOPullUp (*)\n
626 * PUCRF PU0-15 LL_PWR_DisableGPIOPullUp
627 * @note (*) Port D availability depends on devices
628 * @param GPIO This parameter can be one of the following values:
629 * @arg @ref LL_PWR_GPIO_A
630 * @arg @ref LL_PWR_GPIO_B
631 * @arg @ref LL_PWR_GPIO_C
632 * @arg @ref LL_PWR_GPIO_D (*)
633 * @arg @ref LL_PWR_GPIO_F
634 * @param GPIONumber This parameter can be one of the following values:
635 * @arg @ref LL_PWR_GPIO_BIT_0
636 * @arg @ref LL_PWR_GPIO_BIT_1
637 * @arg @ref LL_PWR_GPIO_BIT_2
638 * @arg @ref LL_PWR_GPIO_BIT_3
639 * @arg @ref LL_PWR_GPIO_BIT_4
640 * @arg @ref LL_PWR_GPIO_BIT_5
641 * @arg @ref LL_PWR_GPIO_BIT_6
642 * @arg @ref LL_PWR_GPIO_BIT_7
643 * @arg @ref LL_PWR_GPIO_BIT_8
644 * @arg @ref LL_PWR_GPIO_BIT_9
645 * @arg @ref LL_PWR_GPIO_BIT_10
646 * @arg @ref LL_PWR_GPIO_BIT_11
647 * @arg @ref LL_PWR_GPIO_BIT_12
648 * @arg @ref LL_PWR_GPIO_BIT_13
649 * @arg @ref LL_PWR_GPIO_BIT_14
650 * @arg @ref LL_PWR_GPIO_BIT_15
651 * @retval None
652 */
LL_PWR_DisableGPIOPullUp(uint32_t GPIO,uint32_t GPIONumber)653 __STATIC_INLINE void LL_PWR_DisableGPIOPullUp(uint32_t GPIO, uint32_t GPIONumber)
654 {
655 CLEAR_BIT(*((__IO uint32_t *)GPIO), GPIONumber);
656 }
657
658 /**
659 * @brief Check if GPIO pull-up state is enabled
660 * @rmtoll PUCRA PU0-15 LL_PWR_IsEnabledGPIOPullUp\n
661 * PUCRB PU0-15 LL_PWR_IsEnabledGPIOPullUp\n
662 * PUCRC PU0-15 LL_PWR_IsEnabledGPIOPullUp\n
663 * PUCRD PU0-15 LL_PWR_IsEnabledGPIOPullUp (*)\n
664 * PUCRF PU0-15 LL_PWR_IsEnabledGPIOPullUp
665 * @note (*) Port D availability depends on devices
666 * @param GPIO This parameter can be one of the following values:
667 * @arg @ref LL_PWR_GPIO_A
668 * @arg @ref LL_PWR_GPIO_B
669 * @arg @ref LL_PWR_GPIO_C
670 * @arg @ref LL_PWR_GPIO_D (*)
671 * @arg @ref LL_PWR_GPIO_F
672 * @note (*) Port D availability depends on devices
673 * @param GPIONumber This parameter can be one of the following values:
674 * @arg @ref LL_PWR_GPIO_BIT_0
675 * @arg @ref LL_PWR_GPIO_BIT_1
676 * @arg @ref LL_PWR_GPIO_BIT_2
677 * @arg @ref LL_PWR_GPIO_BIT_3
678 * @arg @ref LL_PWR_GPIO_BIT_4
679 * @arg @ref LL_PWR_GPIO_BIT_5
680 * @arg @ref LL_PWR_GPIO_BIT_6
681 * @arg @ref LL_PWR_GPIO_BIT_7
682 * @arg @ref LL_PWR_GPIO_BIT_8
683 * @arg @ref LL_PWR_GPIO_BIT_9
684 * @arg @ref LL_PWR_GPIO_BIT_10
685 * @arg @ref LL_PWR_GPIO_BIT_11
686 * @arg @ref LL_PWR_GPIO_BIT_12
687 * @arg @ref LL_PWR_GPIO_BIT_13
688 * @arg @ref LL_PWR_GPIO_BIT_14
689 * @arg @ref LL_PWR_GPIO_BIT_15
690 * @retval State of bit (1 or 0).
691 */
LL_PWR_IsEnabledGPIOPullUp(uint32_t GPIO,uint32_t GPIONumber)692 __STATIC_INLINE uint32_t LL_PWR_IsEnabledGPIOPullUp(uint32_t GPIO, uint32_t GPIONumber)
693 {
694 return ((READ_BIT(*((__IO uint32_t *)GPIO), GPIONumber) == (GPIONumber)) ? 1UL : 0UL);
695 }
696
697 /**
698 * @brief Enable GPIO pull-down state in Standby and Shutdown modes
699 * @rmtoll PDCRA PD0-15 LL_PWR_EnableGPIOPullDown\n
700 * PDCRB PD0-15 LL_PWR_EnableGPIOPullDown\n
701 * PDCRC PD0-15 LL_PWR_EnableGPIOPullDown\n
702 * PDCRD PD0-15 LL_PWR_EnableGPIOPullDown (*)\n
703 * PDCRF PD0-15 LL_PWR_EnableGPIOPullDown
704 * @note (*) Port D availability depends on devices
705 * @param GPIO This parameter can be one of the following values:
706 * @arg @ref LL_PWR_GPIO_A
707 * @arg @ref LL_PWR_GPIO_B
708 * @arg @ref LL_PWR_GPIO_C
709 * @arg @ref LL_PWR_GPIO_D (*)
710 * @arg @ref LL_PWR_GPIO_F
711 * @param GPIONumber This parameter can be one of the following values:
712 * @arg @ref LL_PWR_GPIO_BIT_0
713 * @arg @ref LL_PWR_GPIO_BIT_1
714 * @arg @ref LL_PWR_GPIO_BIT_2
715 * @arg @ref LL_PWR_GPIO_BIT_3
716 * @arg @ref LL_PWR_GPIO_BIT_4
717 * @arg @ref LL_PWR_GPIO_BIT_5
718 * @arg @ref LL_PWR_GPIO_BIT_6
719 * @arg @ref LL_PWR_GPIO_BIT_7
720 * @arg @ref LL_PWR_GPIO_BIT_8
721 * @arg @ref LL_PWR_GPIO_BIT_9
722 * @arg @ref LL_PWR_GPIO_BIT_10
723 * @arg @ref LL_PWR_GPIO_BIT_11
724 * @arg @ref LL_PWR_GPIO_BIT_12
725 * @arg @ref LL_PWR_GPIO_BIT_13
726 * @arg @ref LL_PWR_GPIO_BIT_14
727 * @arg @ref LL_PWR_GPIO_BIT_15
728 * @retval None
729 */
LL_PWR_EnableGPIOPullDown(uint32_t GPIO,uint32_t GPIONumber)730 __STATIC_INLINE void LL_PWR_EnableGPIOPullDown(uint32_t GPIO, uint32_t GPIONumber)
731 {
732 SET_BIT(*((__IO uint32_t *)(GPIO + 4U)), GPIONumber);
733 }
734
735 /**
736 * @brief Disable GPIO pull-down state in Standby and Shutdown modes
737 * @rmtoll PDCRA PD0-15 LL_PWR_DisableGPIOPullDown\n
738 * PDCRB PD0-15 LL_PWR_DisableGPIOPullDown\n
739 * PDCRC PD0-15 LL_PWR_DisableGPIOPullDown\n
740 * PDCRD PD0-15 LL_PWR_DisableGPIOPullDown (*)\n
741 * PDCRF PD0-15 LL_PWR_DisableGPIOPullDown
742 * @note (*) Port D availability depends on devices
743 * @param GPIO This parameter can be one of the following values:
744 * @arg @ref LL_PWR_GPIO_A
745 * @arg @ref LL_PWR_GPIO_B
746 * @arg @ref LL_PWR_GPIO_C
747 * @arg @ref LL_PWR_GPIO_D (*)
748 * @note (*) Port D availability depends on devices
749 * @arg @ref LL_PWR_GPIO_F
750 * @param GPIONumber This parameter can be one of the following values:
751 * @arg @ref LL_PWR_GPIO_BIT_0
752 * @arg @ref LL_PWR_GPIO_BIT_1
753 * @arg @ref LL_PWR_GPIO_BIT_2
754 * @arg @ref LL_PWR_GPIO_BIT_3
755 * @arg @ref LL_PWR_GPIO_BIT_4
756 * @arg @ref LL_PWR_GPIO_BIT_5
757 * @arg @ref LL_PWR_GPIO_BIT_6
758 * @arg @ref LL_PWR_GPIO_BIT_7
759 * @arg @ref LL_PWR_GPIO_BIT_8
760 * @arg @ref LL_PWR_GPIO_BIT_9
761 * @arg @ref LL_PWR_GPIO_BIT_10
762 * @arg @ref LL_PWR_GPIO_BIT_11
763 * @arg @ref LL_PWR_GPIO_BIT_12
764 * @arg @ref LL_PWR_GPIO_BIT_13
765 * @arg @ref LL_PWR_GPIO_BIT_14
766 * @arg @ref LL_PWR_GPIO_BIT_15
767 * @retval None
768 */
LL_PWR_DisableGPIOPullDown(uint32_t GPIO,uint32_t GPIONumber)769 __STATIC_INLINE void LL_PWR_DisableGPIOPullDown(uint32_t GPIO, uint32_t GPIONumber)
770 {
771 CLEAR_BIT(*((__IO uint32_t *)(GPIO + 4U)), GPIONumber);
772 }
773
774 /**
775 * @brief Check if GPIO pull-down state is enabled
776 * @rmtoll PDCRA PD0-15 LL_PWR_IsEnabledGPIOPullDown\n
777 * PDCRB PD0-15 LL_PWR_IsEnabledGPIOPullDown\n
778 * PDCRC PD0-15 LL_PWR_IsEnabledGPIOPullDown\n
779 * PDCRD PD0-15 LL_PWR_IsEnabledGPIOPullDown (*)\n
780 * @note (*) Port D availability depends on devices
781 * PDCRF PD0-15 LL_PWR_IsEnabledGPIOPullDown
782 * @param GPIO This parameter can be one of the following values:
783 * @arg @ref LL_PWR_GPIO_A
784 * @arg @ref LL_PWR_GPIO_B
785 * @arg @ref LL_PWR_GPIO_C
786 * @arg @ref LL_PWR_GPIO_D (*)
787 * @arg @ref LL_PWR_GPIO_F
788 * @note (*) Port D availability depends on devices
789 * @param GPIONumber This parameter can be one of the following values:
790 * @arg @ref LL_PWR_GPIO_BIT_0
791 * @arg @ref LL_PWR_GPIO_BIT_1
792 * @arg @ref LL_PWR_GPIO_BIT_2
793 * @arg @ref LL_PWR_GPIO_BIT_3
794 * @arg @ref LL_PWR_GPIO_BIT_4
795 * @arg @ref LL_PWR_GPIO_BIT_5
796 * @arg @ref LL_PWR_GPIO_BIT_6
797 * @arg @ref LL_PWR_GPIO_BIT_7
798 * @arg @ref LL_PWR_GPIO_BIT_8
799 * @arg @ref LL_PWR_GPIO_BIT_9
800 * @arg @ref LL_PWR_GPIO_BIT_10
801 * @arg @ref LL_PWR_GPIO_BIT_11
802 * @arg @ref LL_PWR_GPIO_BIT_12
803 * @arg @ref LL_PWR_GPIO_BIT_13
804 * @arg @ref LL_PWR_GPIO_BIT_14
805 * @arg @ref LL_PWR_GPIO_BIT_15
806 * @retval State of bit (1 or 0).
807 */
LL_PWR_IsEnabledGPIOPullDown(uint32_t GPIO,uint32_t GPIONumber)808 __STATIC_INLINE uint32_t LL_PWR_IsEnabledGPIOPullDown(uint32_t GPIO, uint32_t GPIONumber)
809 {
810 return ((READ_BIT(*((__IO uint32_t *)(GPIO + 4U)), GPIONumber) == (GPIONumber)) ? 1UL : 0UL);
811 }
812
813 /**
814 * @}
815 */
816
817 /** @defgroup PWR_LL_EF_Backup_Registers Backup_Registers
818 * @{
819 */
820
821 /**
822 * @brief Writes a data in a specified Backup data register.
823 * @rmtoll PWR_BKPREGx BKP LL_PWR_BKP_SetRegister
824 * @param BackupRegister This parameter can be one of the following values:
825 * @arg @ref LL_PWR_BKP_DR0
826 * @arg @ref LL_PWR_BKP_DR1
827 * @arg @ref LL_PWR_BKP_DR2
828 * @arg @ref LL_PWR_BKP_DR3
829 * @param Data Value between Min_Data=0x00 and Max_Data=0xFFFF
830 * @retval None
831 */
LL_PWR_BKP_SetRegister(uint32_t BackupRegister,uint16_t Data)832 __STATIC_INLINE void LL_PWR_BKP_SetRegister(uint32_t BackupRegister, uint16_t Data)
833 {
834 __IO uint32_t tmp;
835
836 tmp = (uint32_t)(&(PWR->BKP0R));
837 tmp += (BackupRegister * 4U);
838
839 /* Write the specified register */
840 *(__IO uint32_t *)tmp = (uint16_t)Data;
841 }
842
843 /**
844 * @brief Reads data from the specified Backup data Register.
845 * @rmtoll PWR_BKPREGx BKP LL_PWR_BKP_GetRegister
846 * @param BackupRegister This parameter can be one of the following values:
847 * @arg @ref LL_PWR_BKP_DR0
848 * @arg @ref LL_PWR_BKP_DR1
849 * @arg @ref LL_PWR_BKP_DR2
850 * @arg @ref LL_PWR_BKP_DR3
851 * @retval Value between Min_Data=0x00 and Max_Data=0xFFFF
852 */
LL_PWR_BKP_GetRegister(uint32_t BackupRegister)853 __STATIC_INLINE uint32_t LL_PWR_BKP_GetRegister(uint32_t BackupRegister)
854 {
855 uint32_t tmp;
856
857 tmp = (uint32_t)(&(PWR->BKP0R));
858 tmp += (BackupRegister * 4U);
859
860 /* Read the specified register */
861 return (*(__IO uint32_t *)tmp);
862 }
863
864 /**
865 * @}
866 */
867
868 /** @defgroup PWR_LL_EF_FLAG_Management FLAG_Management
869 * @{
870 */
871
872 /**
873 * @brief Get Internal Wake-up line Flag
874 * @rmtoll SR1 WUFI LL_PWR_IsActiveFlag_InternWU
875 * @retval State of bit (1 or 0).
876 */
LL_PWR_IsActiveFlag_InternWU(void)877 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_InternWU(void)
878 {
879 return ((READ_BIT(PWR->SR1, PWR_SR1_WUFI) == (PWR_SR1_WUFI)) ? 1UL : 0UL);
880 }
881
882 /**
883 * @brief Get Standby Flag
884 * @rmtoll SR1 SBF LL_PWR_IsActiveFlag_SB
885 * @retval State of bit (1 or 0).
886 */
LL_PWR_IsActiveFlag_SB(void)887 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_SB(void)
888 {
889 return ((READ_BIT(PWR->SR1, PWR_SR1_SBF) == (PWR_SR1_SBF)) ? 1UL : 0UL);
890 }
891
892 /**
893 * @brief Get Wake-up Flag 6
894 * @rmtoll SR1 WUF6 LL_PWR_IsActiveFlag_WU6
895 * @retval State of bit (1 or 0).
896 */
LL_PWR_IsActiveFlag_WU6(void)897 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU6(void)
898 {
899 return ((READ_BIT(PWR->SR1, PWR_SR1_WUF6) == (PWR_SR1_WUF6)) ? 1UL : 0UL);
900 }
901
902 #if defined(PWR_CR3_EWUP5)
903 /**
904 * @brief Get Wake-up Flag 5
905 * @rmtoll SR1 WUF5 LL_PWR_IsActiveFlag_WU5
906 * @retval State of bit (1 or 0).
907 */
LL_PWR_IsActiveFlag_WU5(void)908 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU5(void)
909 {
910 return ((READ_BIT(PWR->SR1, PWR_SR1_WUF5) == (PWR_SR1_WUF5)) ? 1UL : 0UL);
911 }
912 #endif /* PWR_CR3_EWUP5 */
913
914 /**
915 * @brief Get Wake-up Flag 4
916 * @rmtoll SR1 WUF4 LL_PWR_IsActiveFlag_WU4
917 * @retval State of bit (1 or 0).
918 */
LL_PWR_IsActiveFlag_WU4(void)919 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU4(void)
920 {
921 return ((READ_BIT(PWR->SR1, PWR_SR1_WUF4) == (PWR_SR1_WUF4)) ? 1UL : 0UL);
922 }
923
924 /**
925 * @brief Get Wake-up Flag 3
926 * @rmtoll SR1 WUF3 LL_PWR_IsActiveFlag_WU3
927 * @retval State of bit (1 or 0).
928 */
LL_PWR_IsActiveFlag_WU3(void)929 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU3(void)
930 {
931 return ((READ_BIT(PWR->SR1, PWR_SR1_WUF3) == (PWR_SR1_WUF3)) ? 1UL : 0UL);
932 }
933
934 /**
935 * @brief Get Wake-up Flag 2
936 * @rmtoll SR1 WUF2 LL_PWR_IsActiveFlag_WU2
937 * @retval State of bit (1 or 0).
938 */
LL_PWR_IsActiveFlag_WU2(void)939 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU2(void)
940 {
941 return ((READ_BIT(PWR->SR1, PWR_SR1_WUF2) == (PWR_SR1_WUF2)) ? 1UL : 0UL);
942 }
943
944 /**
945 * @brief Get Wake-up Flag 1
946 * @rmtoll SR1 WUF1 LL_PWR_IsActiveFlag_WU1
947 * @retval State of bit (1 or 0).
948 */
LL_PWR_IsActiveFlag_WU1(void)949 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU1(void)
950 {
951 return ((READ_BIT(PWR->SR1, PWR_SR1_WUF1) == (PWR_SR1_WUF1)) ? 1UL : 0UL);
952 }
953
954 /**
955 * @brief Clear Standby Flag
956 * @rmtoll SCR CSBF LL_PWR_ClearFlag_SB
957 * @retval None
958 */
LL_PWR_ClearFlag_SB(void)959 __STATIC_INLINE void LL_PWR_ClearFlag_SB(void)
960 {
961 WRITE_REG(PWR->SCR, PWR_SCR_CSBF);
962 }
963
964 /**
965 * @brief Clear Wake-up Flags
966 * @rmtoll SCR CWUF LL_PWR_ClearFlag_WU
967 * @retval None
968 */
LL_PWR_ClearFlag_WU(void)969 __STATIC_INLINE void LL_PWR_ClearFlag_WU(void)
970 {
971 WRITE_REG(PWR->SCR, PWR_SCR_CWUF);
972 }
973
974 /**
975 * @brief Clear Wake-up Flag 6
976 * @rmtoll SCR CWUF6 LL_PWR_ClearFlag_WU6
977 * @retval None
978 */
LL_PWR_ClearFlag_WU6(void)979 __STATIC_INLINE void LL_PWR_ClearFlag_WU6(void)
980 {
981 WRITE_REG(PWR->SCR, PWR_SCR_CWUF6);
982 }
983
984 #if defined(PWR_CR3_EWUP5)
985 /**
986 * @brief Clear Wake-up Flag 5
987 * @rmtoll SCR CWUF5 LL_PWR_ClearFlag_WU5
988 * @retval None
989 */
LL_PWR_ClearFlag_WU5(void)990 __STATIC_INLINE void LL_PWR_ClearFlag_WU5(void)
991 {
992 WRITE_REG(PWR->SCR, PWR_SCR_CWUF5);
993 }
994 #endif /* PWR_CR3_EWUP5 */
995
996 /**
997 * @brief Clear Wake-up Flag 4
998 * @rmtoll SCR CWUF4 LL_PWR_ClearFlag_WU4
999 * @retval None
1000 */
LL_PWR_ClearFlag_WU4(void)1001 __STATIC_INLINE void LL_PWR_ClearFlag_WU4(void)
1002 {
1003 WRITE_REG(PWR->SCR, PWR_SCR_CWUF4);
1004 }
1005
1006 /**
1007 * @brief Clear Wake-up Flag 3
1008 * @rmtoll SCR CWUF3 LL_PWR_ClearFlag_WU3
1009 * @retval None
1010 */
LL_PWR_ClearFlag_WU3(void)1011 __STATIC_INLINE void LL_PWR_ClearFlag_WU3(void)
1012 {
1013 WRITE_REG(PWR->SCR, PWR_SCR_CWUF3);
1014 }
1015
1016 /**
1017 * @brief Clear Wake-up Flag 2
1018 * @rmtoll SCR CWUF2 LL_PWR_ClearFlag_WU2
1019 * @retval None
1020 */
LL_PWR_ClearFlag_WU2(void)1021 __STATIC_INLINE void LL_PWR_ClearFlag_WU2(void)
1022 {
1023 WRITE_REG(PWR->SCR, PWR_SCR_CWUF2);
1024 }
1025
1026 /**
1027 * @brief Clear Wake-up Flag 1
1028 * @rmtoll SCR CWUF1 LL_PWR_ClearFlag_WU1
1029 * @retval None
1030 */
LL_PWR_ClearFlag_WU1(void)1031 __STATIC_INLINE void LL_PWR_ClearFlag_WU1(void)
1032 {
1033 WRITE_REG(PWR->SCR, PWR_SCR_CWUF1);
1034 }
1035
1036 #if defined (PWR_PVM_SUPPORT)
1037 /**
1038 * @brief Indicate whether VDD voltage is below or above the selected PVD
1039 * threshold
1040 * @rmtoll SR2 PVDMO_USB LL_PWR_IsActiveFlag_PVMOUSB
1041 * @retval State of bit (1 or 0).
1042 */
LL_PWR_IsActiveFlag_PVMOUSB(void)1043 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_PVMOUSB(void)
1044 {
1045 return ((READ_BIT(PWR->SR2, PWR_SR2_PVMO_VDDIO2) == (PWR_SR2_PVMO_VDDIO2)) ? 1UL : 0UL);
1046 }
1047 #endif /* PWR_PVM_SUPPORT */
1048
1049 /**
1050 * @brief Indicate whether or not the flash is ready to be accessed
1051 * @rmtoll SR2 FLASH_RDY LL_PWR_IsActiveFlag_FLASH_RDY
1052 * @retval State of bit (1 or 0).
1053 */
LL_PWR_IsActiveFlag_FLASH_RDY(void)1054 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_FLASH_RDY(void)
1055 {
1056 return ((READ_BIT(PWR->SR2, PWR_SR2_FLASH_RDY) == (PWR_SR2_FLASH_RDY)) ? 1UL : 0UL);
1057 }
1058 /**
1059 * @}
1060 */
1061
1062 #if defined(USE_FULL_LL_DRIVER)
1063 /** @defgroup PWR_LL_EF_Init De-initialization function
1064 * @{
1065 */
1066 ErrorStatus LL_PWR_DeInit(void);
1067 /**
1068 * @}
1069 */
1070 #endif /* USE_FULL_LL_DRIVER */
1071
1072 /**
1073 * @}
1074 */
1075
1076 /**
1077 * @}
1078 */
1079
1080 #endif /* defined(PWR) */
1081
1082 /**
1083 * @}
1084 */
1085
1086 #ifdef __cplusplus
1087 }
1088 #endif
1089
1090 #endif /* STM32C0xx_LL_PWR_H */
1091