File indexing completed on 2025-05-11 08:23:36
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 #ifndef STM32H7xx_HAL_PWR_H
0021 #define STM32H7xx_HAL_PWR_H
0022
0023 #ifdef __cplusplus
0024 extern "C" {
0025 #endif
0026
0027
0028 #include "stm32h7xx_hal_def.h"
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048 typedef struct
0049 {
0050 uint32_t PVDLevel;
0051
0052
0053
0054
0055 uint32_t Mode;
0056
0057
0058
0059 }PWR_PVDTypeDef;
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075 #define PWR_PVDLEVEL_0 PWR_CR1_PLS_LEV0
0076
0077 #define PWR_PVDLEVEL_1 PWR_CR1_PLS_LEV1
0078
0079 #define PWR_PVDLEVEL_2 PWR_CR1_PLS_LEV2
0080
0081 #define PWR_PVDLEVEL_3 PWR_CR1_PLS_LEV3
0082
0083 #define PWR_PVDLEVEL_4 PWR_CR1_PLS_LEV4
0084
0085 #define PWR_PVDLEVEL_5 PWR_CR1_PLS_LEV5
0086
0087 #define PWR_PVDLEVEL_6 PWR_CR1_PLS_LEV6
0088
0089 #define PWR_PVDLEVEL_7 PWR_CR1_PLS_LEV7
0090
0091
0092
0093
0094
0095
0096
0097
0098
0099 #define PWR_PVD_MODE_NORMAL (0x00000000U)
0100 #define PWR_PVD_MODE_IT_RISING (0x00010001U)
0101 #define PWR_PVD_MODE_IT_FALLING (0x00010002U)
0102 #define PWR_PVD_MODE_IT_RISING_FALLING (0x00010003U)
0103 #define PWR_PVD_MODE_EVENT_RISING (0x00020001U)
0104 #define PWR_PVD_MODE_EVENT_FALLING (0x00020002U)
0105 #define PWR_PVD_MODE_EVENT_RISING_FALLING (0x00020003U)
0106
0107
0108
0109
0110
0111
0112
0113
0114 #define PWR_MAINREGULATOR_ON (0U)
0115 #define PWR_LOWPOWERREGULATOR_ON PWR_CR1_LPDS
0116
0117
0118
0119
0120
0121
0122
0123
0124 #define PWR_SLEEPENTRY_WFI (0x01U)
0125 #define PWR_SLEEPENTRY_WFE (0x02U)
0126
0127
0128
0129
0130
0131
0132
0133
0134 #define PWR_STOPENTRY_WFI (0x01U)
0135 #define PWR_STOPENTRY_WFE (0x02U)
0136
0137
0138
0139
0140
0141
0142
0143
0144 #if defined(PWR_SRDCR_VOS)
0145 #define PWR_REGULATOR_VOLTAGE_SCALE0 (PWR_SRDCR_VOS_1 | PWR_SRDCR_VOS_0)
0146 #define PWR_REGULATOR_VOLTAGE_SCALE1 (PWR_SRDCR_VOS_1)
0147 #define PWR_REGULATOR_VOLTAGE_SCALE2 (PWR_SRDCR_VOS_0)
0148 #define PWR_REGULATOR_VOLTAGE_SCALE3 (0U)
0149 #else
0150 #define PWR_REGULATOR_VOLTAGE_SCALE0 (0U)
0151 #define PWR_REGULATOR_VOLTAGE_SCALE1 (PWR_D3CR_VOS_1 | PWR_D3CR_VOS_0)
0152 #define PWR_REGULATOR_VOLTAGE_SCALE2 (PWR_D3CR_VOS_1)
0153 #define PWR_REGULATOR_VOLTAGE_SCALE3 (PWR_D3CR_VOS_0)
0154 #endif
0155
0156
0157
0158
0159
0160
0161
0162
0163
0164 #define PWR_FLAG_STOP (0x01U)
0165 #if defined (PWR_CPUCR_SBF_D2)
0166 #define PWR_FLAG_SB_D1 (0x02U)
0167 #define PWR_FLAG_SB_D2 (0x03U)
0168 #endif
0169 #define PWR_FLAG_SB (0x04U)
0170 #if defined (DUAL_CORE)
0171 #define PWR_FLAG_CPU_HOLD (0x05U)
0172 #define PWR_FLAG_CPU2_HOLD (0x06U)
0173 #define PWR_FLAG2_STOP (0x07U)
0174 #define PWR_FLAG2_SB_D1 (0x08U)
0175 #define PWR_FLAG2_SB_D2 (0x09U)
0176 #define PWR_FLAG2_SB (0x0AU)
0177 #endif
0178 #define PWR_FLAG_PVDO (0x0BU)
0179 #define PWR_FLAG_AVDO (0x0CU)
0180 #define PWR_FLAG_ACTVOSRDY (0x0DU)
0181 #define PWR_FLAG_ACTVOS (0x0EU)
0182 #define PWR_FLAG_BRR (0x0FU)
0183 #define PWR_FLAG_VOSRDY (0x10U)
0184 #if defined (SMPS)
0185 #define PWR_FLAG_SMPSEXTRDY (0x11U)
0186 #else
0187 #define PWR_FLAG_SCUEN (0x11U)
0188 #endif
0189 #if defined (PWR_CSR1_MMCVDO)
0190 #define PWR_FLAG_MMCVDO (0x12U)
0191 #endif
0192 #define PWR_FLAG_USB33RDY (0x13U)
0193 #define PWR_FLAG_TEMPH (0x14U)
0194 #define PWR_FLAG_TEMPL (0x15U)
0195 #define PWR_FLAG_VBATH (0x16U)
0196 #define PWR_FLAG_VBATL (0x17U)
0197
0198
0199 #define PWR_FLAG_WKUP1 PWR_WKUPCR_WKUPC1
0200 #define PWR_FLAG_WKUP2 PWR_WKUPCR_WKUPC2
0201 #define PWR_FLAG_WKUP3 PWR_WKUPCR_WKUPC3
0202 #define PWR_FLAG_WKUP4 PWR_WKUPCR_WKUPC4
0203 #define PWR_FLAG_WKUP5 PWR_WKUPCR_WKUPC5
0204 #define PWR_FLAG_WKUP6 PWR_WKUPCR_WKUPC6
0205
0206
0207
0208
0209
0210
0211
0212
0213 #define PWR_EWUP_MASK (0x0FFF3F3FU)
0214
0215
0216
0217
0218
0219
0220
0221
0222
0223
0224
0225
0226
0227
0228
0229
0230
0231
0232
0233
0234
0235
0236
0237
0238
0239
0240
0241
0242
0243
0244
0245
0246
0247
0248
0249
0250
0251
0252
0253
0254
0255
0256
0257
0258 #if defined (PWR_SRDCR_VOS)
0259 #define __HAL_PWR_VOLTAGESCALING_CONFIG(__REGULATOR__) \
0260 do { \
0261 __IO uint32_t tmpreg = 0x00; \
0262 \
0263 MODIFY_REG(PWR->SRDCR, PWR_SRDCR_VOS, (__REGULATOR__)); \
0264 \
0265 tmpreg = READ_BIT(PWR->SRDCR, PWR_SRDCR_VOS); \
0266 UNUSED(tmpreg); \
0267 } while(0)
0268 #else
0269 #if defined(SYSCFG_PWRCR_ODEN)
0270 #define __HAL_PWR_VOLTAGESCALING_CONFIG(__REGULATOR__) \
0271 do { \
0272 __IO uint32_t tmpreg = 0x00; \
0273 \
0274 if((__REGULATOR__) == PWR_REGULATOR_VOLTAGE_SCALE0) \
0275 { \
0276 \
0277 MODIFY_REG(PWR->D3CR, PWR_D3CR_VOS, PWR_REGULATOR_VOLTAGE_SCALE1); \
0278 \
0279 tmpreg = READ_BIT(PWR->D3CR, PWR_D3CR_VOS); \
0280 \
0281 SET_BIT(SYSCFG->PWRCR, SYSCFG_PWRCR_ODEN); \
0282 \
0283 tmpreg = READ_BIT(SYSCFG->PWRCR, SYSCFG_PWRCR_ODEN); \
0284 } \
0285 else \
0286 { \
0287 \
0288 CLEAR_BIT(SYSCFG->PWRCR, SYSCFG_PWRCR_ODEN); \
0289 \
0290 tmpreg = READ_BIT(SYSCFG->PWRCR, SYSCFG_PWRCR_ODEN); \
0291 \
0292 MODIFY_REG(PWR->D3CR, PWR_D3CR_VOS, (__REGULATOR__)); \
0293 \
0294 tmpreg = READ_BIT(PWR->D3CR, PWR_D3CR_VOS); \
0295 } \
0296 UNUSED(tmpreg); \
0297 } while(0)
0298 #else
0299 #define __HAL_PWR_VOLTAGESCALING_CONFIG(__REGULATOR__) \
0300 do { \
0301 __IO uint32_t tmpreg = 0x00; \
0302 \
0303 MODIFY_REG (PWR->D3CR, PWR_D3CR_VOS, (__REGULATOR__)); \
0304 \
0305 tmpreg = READ_BIT(PWR->D3CR, PWR_D3CR_VOS); \
0306 UNUSED(tmpreg); \
0307 } while(0)
0308 #endif
0309 #endif
0310
0311
0312
0313
0314
0315
0316
0317
0318
0319
0320
0321
0322
0323
0324
0325
0326
0327
0328
0329
0330
0331
0332
0333
0334
0335
0336
0337
0338
0339
0340
0341
0342
0343
0344
0345
0346
0347
0348
0349
0350
0351
0352
0353
0354
0355
0356
0357
0358
0359
0360
0361
0362
0363
0364
0365
0366
0367
0368
0369
0370
0371
0372
0373
0374
0375
0376
0377
0378
0379
0380
0381
0382
0383
0384
0385
0386
0387
0388 #if defined (DUAL_CORE)
0389 #define __HAL_PWR_GET_FLAG(__FLAG__) \
0390 (((__FLAG__) == PWR_FLAG_PVDO) ? ((PWR->CSR1 & PWR_CSR1_PVDO) == PWR_CSR1_PVDO) :\
0391 ((__FLAG__) == PWR_FLAG_AVDO) ? ((PWR->CSR1 & PWR_CSR1_AVDO) == PWR_CSR1_AVDO) :\
0392 ((__FLAG__) == PWR_FLAG_ACTVOSRDY) ? ((PWR->CSR1 & PWR_CSR1_ACTVOSRDY) == PWR_CSR1_ACTVOSRDY) :\
0393 ((__FLAG__) == PWR_FLAG_VOSRDY) ? ((PWR->D3CR & PWR_D3CR_VOSRDY) == PWR_D3CR_VOSRDY) :\
0394 ((__FLAG__) == PWR_FLAG_SMPSEXTRDY) ? ((PWR->CR3 & PWR_CR3_SMPSEXTRDY) == PWR_CR3_SMPSEXTRDY) :\
0395 ((__FLAG__) == PWR_FLAG_BRR) ? ((PWR->CR2 & PWR_CR2_BRRDY) == PWR_CR2_BRRDY) :\
0396 ((__FLAG__) == PWR_FLAG_CPU_HOLD) ? ((PWR->CPU2CR & PWR_CPU2CR_HOLD1F) == PWR_CPU2CR_HOLD1F) :\
0397 ((__FLAG__) == PWR_FLAG_CPU2_HOLD) ? ((PWR->CPUCR & PWR_CPUCR_HOLD2F) == PWR_CPUCR_HOLD2F) :\
0398 ((__FLAG__) == PWR_FLAG_SB) ? ((PWR->CPUCR & PWR_CPUCR_SBF) == PWR_CPUCR_SBF) :\
0399 ((__FLAG__) == PWR_FLAG2_SB) ? ((PWR->CPU2CR & PWR_CPU2CR_SBF) == PWR_CPU2CR_SBF) :\
0400 ((__FLAG__) == PWR_FLAG_STOP) ? ((PWR->CPUCR & PWR_CPUCR_STOPF) == PWR_CPUCR_STOPF) :\
0401 ((__FLAG__) == PWR_FLAG2_STOP) ? ((PWR->CPU2CR & PWR_CPU2CR_STOPF) == PWR_CPU2CR_STOPF) :\
0402 ((__FLAG__) == PWR_FLAG_SB_D1) ? ((PWR->CPUCR & PWR_CPUCR_SBF_D1) == PWR_CPUCR_SBF_D1) :\
0403 ((__FLAG__) == PWR_FLAG2_SB_D1) ? ((PWR->CPU2CR & PWR_CPU2CR_SBF_D1) == PWR_CPU2CR_SBF_D1) :\
0404 ((__FLAG__) == PWR_FLAG_SB_D2) ? ((PWR->CPUCR & PWR_CPUCR_SBF_D2) == PWR_CPUCR_SBF_D2) :\
0405 ((__FLAG__) == PWR_FLAG2_SB_D2) ? ((PWR->CPU2CR & PWR_CPU2CR_SBF_D2) == PWR_CPU2CR_SBF_D2) :\
0406 ((__FLAG__) == PWR_FLAG_USB33RDY) ? ((PWR->CR3 & PWR_CR3_USB33RDY) == PWR_CR3_USB33RDY) :\
0407 ((__FLAG__) == PWR_FLAG_TEMPH) ? ((PWR->CR2 & PWR_CR2_TEMPH) == PWR_CR2_TEMPH) :\
0408 ((__FLAG__) == PWR_FLAG_TEMPL) ? ((PWR->CR2 & PWR_CR2_TEMPL) == PWR_CR2_TEMPL) :\
0409 ((__FLAG__) == PWR_FLAG_VBATH) ? ((PWR->CR2 & PWR_CR2_VBATH) == PWR_CR2_VBATH) :\
0410 ((PWR->CR2 & PWR_CR2_VBATL) == PWR_CR2_VBATL))
0411 #else
0412 #if defined (PWR_CPUCR_SBF_D2)
0413 #if defined (SMPS)
0414 #define __HAL_PWR_GET_FLAG(__FLAG__) \
0415 (((__FLAG__) == PWR_FLAG_PVDO) ? ((PWR->CSR1 & PWR_CSR1_PVDO) == PWR_CSR1_PVDO) :\
0416 ((__FLAG__) == PWR_FLAG_AVDO) ? ((PWR->CSR1 & PWR_CSR1_AVDO) == PWR_CSR1_AVDO) :\
0417 ((__FLAG__) == PWR_FLAG_ACTVOSRDY) ? ((PWR->CSR1 & PWR_CSR1_ACTVOSRDY) == PWR_CSR1_ACTVOSRDY) :\
0418 ((__FLAG__) == PWR_FLAG_VOSRDY) ? ((PWR->D3CR & PWR_D3CR_VOSRDY) == PWR_D3CR_VOSRDY) :\
0419 ((__FLAG__) == PWR_FLAG_SMPSEXTRDY) ? ((PWR->CR3 & PWR_FLAG_SMPSEXTRDY) == PWR_FLAG_SMPSEXTRDY) :\
0420 ((__FLAG__) == PWR_FLAG_BRR) ? ((PWR->CR2 & PWR_CR2_BRRDY) == PWR_CR2_BRRDY) :\
0421 ((__FLAG__) == PWR_FLAG_SB) ? ((PWR->CPUCR & PWR_CPUCR_SBF) == PWR_CPUCR_SBF) :\
0422 ((__FLAG__) == PWR_FLAG_STOP) ? ((PWR->CPUCR & PWR_CPUCR_STOPF) == PWR_CPUCR_STOPF) :\
0423 ((__FLAG__) == PWR_FLAG_SB_D1) ? ((PWR->CPUCR & PWR_CPUCR_SBF_D1) == PWR_CPUCR_SBF_D1) :\
0424 ((__FLAG__) == PWR_FLAG_SB_D2) ? ((PWR->CPUCR & PWR_CPUCR_SBF_D2) == PWR_CPUCR_SBF_D2) :\
0425 ((__FLAG__) == PWR_FLAG_USB33RDY) ? ((PWR->CR3 & PWR_CR3_USB33RDY) == PWR_CR3_USB33RDY) :\
0426 ((__FLAG__) == PWR_FLAG_TEMPH) ? ((PWR->CR2 & PWR_CR2_TEMPH) == PWR_CR2_TEMPH) :\
0427 ((__FLAG__) == PWR_FLAG_TEMPL) ? ((PWR->CR2 & PWR_CR2_TEMPL) == PWR_CR2_TEMPL) :\
0428 ((__FLAG__) == PWR_FLAG_VBATH) ? ((PWR->CR2 & PWR_CR2_VBATH) == PWR_CR2_VBATH) :\
0429 ((PWR->CR2 & PWR_CR2_VBATL) == PWR_CR2_VBATL))
0430 #else
0431 #define __HAL_PWR_GET_FLAG(__FLAG__) \
0432 (((__FLAG__) == PWR_FLAG_PVDO) ? ((PWR->CSR1 & PWR_CSR1_PVDO) == PWR_CSR1_PVDO) :\
0433 ((__FLAG__) == PWR_FLAG_AVDO) ? ((PWR->CSR1 & PWR_CSR1_AVDO) == PWR_CSR1_AVDO) :\
0434 ((__FLAG__) == PWR_FLAG_ACTVOSRDY) ? ((PWR->CSR1 & PWR_CSR1_ACTVOSRDY) == PWR_CSR1_ACTVOSRDY) :\
0435 ((__FLAG__) == PWR_FLAG_VOSRDY) ? ((PWR->D3CR & PWR_D3CR_VOSRDY) == PWR_D3CR_VOSRDY) :\
0436 ((__FLAG__) == PWR_FLAG_SCUEN) ? ((PWR->CR3 & PWR_CR3_SCUEN) == PWR_CR3_SCUEN) :\
0437 ((__FLAG__) == PWR_FLAG_BRR) ? ((PWR->CR2 & PWR_CR2_BRRDY) == PWR_CR2_BRRDY) :\
0438 ((__FLAG__) == PWR_FLAG_SB) ? ((PWR->CPUCR & PWR_CPUCR_SBF) == PWR_CPUCR_SBF) :\
0439 ((__FLAG__) == PWR_FLAG_STOP) ? ((PWR->CPUCR & PWR_CPUCR_STOPF) == PWR_CPUCR_STOPF) :\
0440 ((__FLAG__) == PWR_FLAG_SB_D1) ? ((PWR->CPUCR & PWR_CPUCR_SBF_D1) == PWR_CPUCR_SBF_D1) :\
0441 ((__FLAG__) == PWR_FLAG_SB_D2) ? ((PWR->CPUCR & PWR_CPUCR_SBF_D2) == PWR_CPUCR_SBF_D2) :\
0442 ((__FLAG__) == PWR_FLAG_USB33RDY) ? ((PWR->CR3 & PWR_CR3_USB33RDY) == PWR_CR3_USB33RDY) :\
0443 ((__FLAG__) == PWR_FLAG_TEMPH) ? ((PWR->CR2 & PWR_CR2_TEMPH) == PWR_CR2_TEMPH) :\
0444 ((__FLAG__) == PWR_FLAG_TEMPL) ? ((PWR->CR2 & PWR_CR2_TEMPL) == PWR_CR2_TEMPL) :\
0445 ((__FLAG__) == PWR_FLAG_VBATH) ? ((PWR->CR2 & PWR_CR2_VBATH) == PWR_CR2_VBATH) :\
0446 ((PWR->CR2 & PWR_CR2_VBATL) == PWR_CR2_VBATL))
0447 #endif
0448 #else
0449 #if defined (SMPS)
0450 #define __HAL_PWR_GET_FLAG(__FLAG__) \
0451 (((__FLAG__) == PWR_FLAG_PVDO) ? ((PWR->CSR1 & PWR_CSR1_PVDO) == PWR_CSR1_PVDO) :\
0452 ((__FLAG__) == PWR_FLAG_AVDO) ? ((PWR->CSR1 & PWR_CSR1_AVDO) == PWR_CSR1_AVDO) :\
0453 ((__FLAG__) == PWR_FLAG_ACTVOSRDY) ? ((PWR->CSR1 & PWR_CSR1_ACTVOSRDY) == PWR_CSR1_ACTVOSRDY) :\
0454 ((__FLAG__) == PWR_FLAG_BRR) ? ((PWR->CR2 & PWR_CR2_BRRDY) == PWR_CR2_BRRDY) :\
0455 ((__FLAG__) == PWR_FLAG_VOSRDY) ? ((PWR->SRDCR & PWR_SRDCR_VOSRDY) == PWR_SRDCR_VOSRDY) :\
0456 ((__FLAG__) == PWR_FLAG_STOP) ? ((PWR->CPUCR & PWR_CPUCR_STOPF) == PWR_CPUCR_STOPF) :\
0457 ((__FLAG__) == PWR_FLAG_SB) ? ((PWR->CPUCR & PWR_CPUCR_SBF) == PWR_CPUCR_SBF) :\
0458 ((__FLAG__) == PWR_FLAG_MMCVDO) ? ((PWR->CSR1 & PWR_CSR1_MMCVDO) == PWR_CSR1_MMCVDO) :\
0459 ((__FLAG__) == PWR_FLAG_SMPSEXTRDY) ? ((PWR->CR3 & PWR_CR3_SMPSEXTRDY) == PWR_CR3_SMPSEXTRDY) :\
0460 ((__FLAG__) == PWR_FLAG_USB33RDY) ? ((PWR->CR3 & PWR_CR3_USB33RDY) == PWR_CR3_USB33RDY) :\
0461 ((__FLAG__) == PWR_FLAG_TEMPH) ? ((PWR->CR2 & PWR_CR2_TEMPH) == PWR_CR2_TEMPH) :\
0462 ((__FLAG__) == PWR_FLAG_TEMPL) ? ((PWR->CR2 & PWR_CR2_TEMPL) == PWR_CR2_TEMPL) :\
0463 ((__FLAG__) == PWR_FLAG_VBATH) ? ((PWR->CR2 & PWR_CR2_VBATH) == PWR_CR2_VBATH) :\
0464 ((PWR->CR2 & PWR_CR2_VBATL) == PWR_CR2_VBATL))
0465 #else
0466 #define __HAL_PWR_GET_FLAG(__FLAG__) \
0467 (((__FLAG__) == PWR_FLAG_PVDO) ? ((PWR->CSR1 & PWR_CSR1_PVDO) == PWR_CSR1_PVDO) :\
0468 ((__FLAG__) == PWR_FLAG_AVDO) ? ((PWR->CSR1 & PWR_CSR1_AVDO) == PWR_CSR1_AVDO) :\
0469 ((__FLAG__) == PWR_FLAG_ACTVOSRDY) ? ((PWR->CSR1 & PWR_CSR1_ACTVOSRDY) == PWR_CSR1_ACTVOSRDY) :\
0470 ((__FLAG__) == PWR_FLAG_BRR) ? ((PWR->CR2 & PWR_CR2_BRRDY) == PWR_CR2_BRRDY) :\
0471 ((__FLAG__) == PWR_FLAG_VOSRDY) ? ((PWR->SRDCR & PWR_SRDCR_VOSRDY) == PWR_SRDCR_VOSRDY) :\
0472 ((__FLAG__) == PWR_FLAG_SCUEN) ? ((PWR->CR3 & PWR_CR3_SCUEN) == PWR_CR3_SCUEN) :\
0473 ((__FLAG__) == PWR_FLAG_STOP) ? ((PWR->CPUCR & PWR_CPUCR_STOPF) == PWR_CPUCR_STOPF) :\
0474 ((__FLAG__) == PWR_FLAG_SB) ? ((PWR->CPUCR & PWR_CPUCR_SBF) == PWR_CPUCR_SBF) :\
0475 ((__FLAG__) == PWR_FLAG_MMCVDO) ? ((PWR->CSR1 & PWR_CSR1_MMCVDO) == PWR_CSR1_MMCVDO) :\
0476 ((__FLAG__) == PWR_FLAG_USB33RDY) ? ((PWR->CR3 & PWR_CR3_USB33RDY) == PWR_CR3_USB33RDY) :\
0477 ((__FLAG__) == PWR_FLAG_TEMPH) ? ((PWR->CR2 & PWR_CR2_TEMPH) == PWR_CR2_TEMPH) :\
0478 ((__FLAG__) == PWR_FLAG_TEMPL) ? ((PWR->CR2 & PWR_CR2_TEMPL) == PWR_CR2_TEMPL) :\
0479 ((__FLAG__) == PWR_FLAG_VBATH) ? ((PWR->CR2 & PWR_CR2_VBATH) == PWR_CR2_VBATH) :\
0480 ((PWR->CR2 & PWR_CR2_VBATL) == PWR_CR2_VBATL))
0481 #endif
0482 #endif
0483 #endif
0484
0485
0486
0487
0488
0489
0490
0491
0492
0493
0494
0495
0496
0497
0498 #define __HAL_PWR_GET_WAKEUPFLAG(__FLAG__) ((PWR->WKUPFR & (__FLAG__)) ? 0 : 1)
0499
0500 #if defined (DUAL_CORE)
0501
0502
0503
0504
0505
0506
0507
0508
0509
0510
0511 #define __HAL_PWR_CLEAR_FLAG(__FLAG__) \
0512 do { \
0513 SET_BIT(PWR->CPUCR, PWR_CPUCR_CSSF); \
0514 SET_BIT(PWR->CPU2CR, PWR_CPU2CR_CSSF); \
0515 } while(0)
0516 #else
0517
0518
0519
0520
0521
0522
0523
0524
0525
0526
0527 #define __HAL_PWR_CLEAR_FLAG(__FLAG__) SET_BIT(PWR->CPUCR, PWR_CPUCR_CSSF)
0528 #endif
0529
0530
0531
0532
0533
0534
0535
0536
0537
0538
0539
0540
0541
0542
0543 #define __HAL_PWR_CLEAR_WAKEUPFLAG(__FLAG__) SET_BIT(PWR->WKUPCR, (__FLAG__))
0544
0545
0546
0547
0548
0549 #define __HAL_PWR_PVD_EXTI_ENABLE_IT() SET_BIT(EXTI->IMR1, PWR_EXTI_LINE_PVD)
0550
0551 #if defined (DUAL_CORE)
0552
0553
0554
0555
0556 #define __HAL_PWR_PVD_EXTID2_ENABLE_IT() SET_BIT(EXTI_D2->IMR1, PWR_EXTI_LINE_PVD)
0557 #endif
0558
0559
0560
0561
0562
0563 #define __HAL_PWR_PVD_EXTI_DISABLE_IT() CLEAR_BIT(EXTI->IMR1, PWR_EXTI_LINE_PVD)
0564
0565 #if defined (DUAL_CORE)
0566
0567
0568
0569
0570 #define __HAL_PWR_PVD_EXTID2_DISABLE_IT() CLEAR_BIT(EXTI_D2->IMR1, PWR_EXTI_LINE_PVD)
0571 #endif
0572
0573
0574
0575
0576
0577 #define __HAL_PWR_PVD_EXTI_ENABLE_EVENT() SET_BIT(EXTI->EMR1, PWR_EXTI_LINE_PVD)
0578
0579 #if defined (DUAL_CORE)
0580
0581
0582
0583
0584 #define __HAL_PWR_PVD_EXTID2_ENABLE_EVENT() SET_BIT(EXTI_D2->EMR1, PWR_EXTI_LINE_PVD)
0585 #endif
0586
0587
0588
0589
0590
0591 #define __HAL_PWR_PVD_EXTI_DISABLE_EVENT() CLEAR_BIT(EXTI->EMR1, PWR_EXTI_LINE_PVD)
0592
0593 #if defined (DUAL_CORE)
0594
0595
0596
0597
0598 #define __HAL_PWR_PVD_EXTID2_DISABLE_EVENT() CLEAR_BIT(EXTI_D2->EMR1, PWR_EXTI_LINE_PVD)
0599 #endif
0600
0601
0602
0603
0604
0605 #define __HAL_PWR_PVD_EXTI_ENABLE_RISING_EDGE() SET_BIT(EXTI->RTSR1, PWR_EXTI_LINE_PVD)
0606
0607
0608
0609
0610
0611 #define __HAL_PWR_PVD_EXTI_DISABLE_RISING_EDGE() CLEAR_BIT(EXTI->RTSR1, PWR_EXTI_LINE_PVD)
0612
0613
0614
0615
0616
0617 #define __HAL_PWR_PVD_EXTI_ENABLE_FALLING_EDGE() SET_BIT(EXTI->FTSR1, PWR_EXTI_LINE_PVD)
0618
0619
0620
0621
0622
0623 #define __HAL_PWR_PVD_EXTI_DISABLE_FALLING_EDGE() CLEAR_BIT(EXTI->FTSR1, PWR_EXTI_LINE_PVD)
0624
0625
0626
0627
0628
0629 #define __HAL_PWR_PVD_EXTI_ENABLE_RISING_FALLING_EDGE() \
0630 do { \
0631 __HAL_PWR_PVD_EXTI_ENABLE_RISING_EDGE(); \
0632 __HAL_PWR_PVD_EXTI_ENABLE_FALLING_EDGE(); \
0633 } while(0);
0634
0635
0636
0637
0638
0639 #define __HAL_PWR_PVD_EXTI_DISABLE_RISING_FALLING_EDGE() \
0640 do { \
0641 __HAL_PWR_PVD_EXTI_DISABLE_RISING_EDGE(); \
0642 __HAL_PWR_PVD_EXTI_DISABLE_FALLING_EDGE(); \
0643 } while(0);
0644
0645
0646
0647
0648
0649 #define __HAL_PWR_PVD_EXTI_GET_FLAG() ((READ_BIT(EXTI->PR1, PWR_EXTI_LINE_PVD) == PWR_EXTI_LINE_PVD) ? 1UL : 0UL)
0650
0651 #if defined (DUAL_CORE)
0652
0653
0654
0655
0656 #define __HAL_PWR_PVD_EXTID2_GET_FLAG() ((READ_BIT(EXTI_D2->PR1, PWR_EXTI_LINE_PVD) == PWR_EXTI_LINE_PVD) ? 1UL : 0UL)
0657 #endif
0658
0659
0660
0661
0662
0663 #define __HAL_PWR_PVD_EXTI_CLEAR_FLAG() SET_BIT(EXTI->PR1, PWR_EXTI_LINE_PVD)
0664
0665 #if defined (DUAL_CORE)
0666
0667
0668
0669
0670 #define __HAL_PWR_PVD_EXTID2_CLEAR_FLAG() SET_BIT(EXTI_D2->PR1, PWR_EXTI_LINE_PVD)
0671 #endif
0672
0673
0674
0675
0676
0677 #define __HAL_PWR_PVD_EXTI_GENERATE_SWIT() SET_BIT(EXTI->SWIER1, PWR_EXTI_LINE_PVD)
0678
0679
0680
0681
0682
0683 #include "stm32h7xx_hal_pwr_ex.h"
0684
0685
0686
0687
0688
0689
0690
0691
0692
0693
0694 void HAL_PWR_DeInit (void);
0695 void HAL_PWR_EnableBkUpAccess (void);
0696 void HAL_PWR_DisableBkUpAccess (void);
0697
0698
0699
0700
0701
0702
0703
0704
0705
0706 void HAL_PWR_ConfigPVD (PWR_PVDTypeDef *sConfigPVD);
0707 void HAL_PWR_EnablePVD (void);
0708 void HAL_PWR_DisablePVD (void);
0709
0710
0711 void HAL_PWR_EnableWakeUpPin (uint32_t WakeUpPinPolarity);
0712 void HAL_PWR_DisableWakeUpPin (uint32_t WakeUpPinx);
0713
0714
0715 void HAL_PWR_EnterSTOPMode (uint32_t Regulator, uint8_t STOPEntry);
0716 void HAL_PWR_EnterSLEEPMode (uint32_t Regulator, uint8_t SLEEPEntry);
0717 void HAL_PWR_EnterSTANDBYMode (void);
0718
0719
0720 void HAL_PWR_PVD_IRQHandler (void);
0721 void HAL_PWR_PVDCallback (void);
0722
0723
0724 void HAL_PWR_EnableSleepOnExit (void);
0725 void HAL_PWR_DisableSleepOnExit (void);
0726 void HAL_PWR_EnableSEVOnPend (void);
0727 void HAL_PWR_DisableSEVOnPend (void);
0728
0729
0730
0731
0732
0733
0734
0735
0736
0737
0738
0739
0740
0741
0742
0743
0744
0745
0746
0747
0748 #define PWR_EXTI_LINE_PVD EXTI_IMR1_IM16
0749
0750
0751
0752
0753
0754
0755
0756
0757
0758
0759
0760
0761
0762
0763
0764
0765
0766
0767
0768 #define IS_PWR_PVD_LEVEL(LEVEL) (((LEVEL) == PWR_PVDLEVEL_0) ||\
0769 ((LEVEL) == PWR_PVDLEVEL_1) ||\
0770 ((LEVEL) == PWR_PVDLEVEL_2) ||\
0771 ((LEVEL) == PWR_PVDLEVEL_3) ||\
0772 ((LEVEL) == PWR_PVDLEVEL_4) ||\
0773 ((LEVEL) == PWR_PVDLEVEL_5) ||\
0774 ((LEVEL) == PWR_PVDLEVEL_6) ||\
0775 ((LEVEL) == PWR_PVDLEVEL_7))
0776
0777
0778 #define IS_PWR_PVD_MODE(MODE) (((MODE) == PWR_PVD_MODE_IT_RISING) ||\
0779 ((MODE) == PWR_PVD_MODE_IT_FALLING) ||\
0780 ((MODE) == PWR_PVD_MODE_IT_RISING_FALLING) ||\
0781 ((MODE) == PWR_PVD_MODE_EVENT_RISING) ||\
0782 ((MODE) == PWR_PVD_MODE_EVENT_FALLING) ||\
0783 ((MODE) == PWR_PVD_MODE_EVENT_RISING_FALLING) ||\
0784 ((MODE) == PWR_PVD_MODE_NORMAL))
0785
0786
0787 #define IS_PWR_REGULATOR(REGULATOR) (((REGULATOR) == PWR_MAINREGULATOR_ON) ||\
0788 ((REGULATOR) == PWR_LOWPOWERREGULATOR_ON))
0789
0790
0791 #define IS_PWR_SLEEP_ENTRY(ENTRY) (((ENTRY) == PWR_SLEEPENTRY_WFI) ||\
0792 ((ENTRY) == PWR_SLEEPENTRY_WFE))
0793
0794
0795 #define IS_PWR_STOP_ENTRY(ENTRY) (((ENTRY) == PWR_STOPENTRY_WFI) ||\
0796 ((ENTRY) == PWR_STOPENTRY_WFE))
0797
0798
0799 #define IS_PWR_REGULATOR_VOLTAGE(VOLTAGE) (((VOLTAGE) == PWR_REGULATOR_VOLTAGE_SCALE0) || \
0800 ((VOLTAGE) == PWR_REGULATOR_VOLTAGE_SCALE1) || \
0801 ((VOLTAGE) == PWR_REGULATOR_VOLTAGE_SCALE2) || \
0802 ((VOLTAGE) == PWR_REGULATOR_VOLTAGE_SCALE3))
0803
0804
0805
0806
0807
0808
0809
0810
0811
0812
0813
0814
0815
0816
0817
0818
0819 #ifdef __cplusplus
0820 }
0821 #endif
0822
0823 #endif
0824