37 #ifndef __STM32F4xx_HAL_PWR_EX_H
38 #define __STM32F4xx_HAL_PWR_EX_H
60 #if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) ||\
61 defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
66 #define PWR_MAINREGULATOR_UNDERDRIVE_ON PWR_CR_MRUDS
67 #define PWR_LOWPOWERREGULATOR_UNDERDRIVE_ON ((uint32_t)(PWR_CR_LPDS | PWR_CR_LPUDS))
75 #define PWR_FLAG_ODRDY PWR_CSR_ODRDY
76 #define PWR_FLAG_ODSWRDY PWR_CSR_ODSWRDY
77 #define PWR_FLAG_UDRDY PWR_CSR_UDSWRDY
86 #if defined(STM32F405xx) || defined(STM32F407xx) || defined(STM32F415xx) || defined(STM32F417xx)
87 #define PWR_REGULATOR_VOLTAGE_SCALE1 PWR_CR_VOS
88 #define PWR_REGULATOR_VOLTAGE_SCALE2 0x00000000U
90 #define PWR_REGULATOR_VOLTAGE_SCALE1 PWR_CR_VOS
92 #define PWR_REGULATOR_VOLTAGE_SCALE2 PWR_CR_VOS_1
94 #define PWR_REGULATOR_VOLTAGE_SCALE3 PWR_CR_VOS_0
99 #if defined(STM32F410Tx) || defined(STM32F410Cx) || defined(STM32F410Rx) || defined(STM32F446xx) || defined(STM32F412Zx) || defined(STM32F412Vx) || \
100 defined(STM32F412Rx) || defined(STM32F412Cx) || defined(STM32F413xx) || defined(STM32F423xx)
104 #define PWR_WAKEUP_PIN2 0x00000080U
105 #if defined(STM32F410Tx) || defined(STM32F410Cx) || defined(STM32F410Rx) || defined(STM32F412Zx) || defined(STM32F412Vx) || \
106 defined(STM32F412Rx) || defined(STM32F412Cx) || defined(STM32F413xx) || defined(STM32F423xx)
107 #define PWR_WAKEUP_PIN3 0x00000040U
125 #if defined(STM32F405xx) || defined(STM32F407xx) || defined(STM32F415xx) || defined(STM32F417xx)
135 #define __HAL_PWR_VOLTAGESCALING_CONFIG(__REGULATOR__) do { \
136 __IO uint32_t tmpreg = 0x00U; \
137 MODIFY_REG(PWR->CR, PWR_CR_VOS, (__REGULATOR__)); \
139 tmpreg = READ_BIT(PWR->CR, PWR_CR_VOS); \
153 #define __HAL_PWR_VOLTAGESCALING_CONFIG(__REGULATOR__) do { \
154 __IO uint32_t tmpreg = 0x00U; \
155 MODIFY_REG(PWR->CR, PWR_CR_VOS, (__REGULATOR__)); \
157 tmpreg = READ_BIT(PWR->CR, PWR_CR_VOS); \
162 #if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) ||\
163 defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
167 #define __HAL_PWR_OVERDRIVE_ENABLE() (*(__IO uint32_t *) CR_ODEN_BB = ENABLE)
168 #define __HAL_PWR_OVERDRIVE_DISABLE() (*(__IO uint32_t *) CR_ODEN_BB = DISABLE)
173 #define __HAL_PWR_OVERDRIVESWITCHING_ENABLE() (*(__IO uint32_t *) CR_ODSWEN_BB = ENABLE)
174 #define __HAL_PWR_OVERDRIVESWITCHING_DISABLE() (*(__IO uint32_t *) CR_ODSWEN_BB = DISABLE)
186 #define __HAL_PWR_UNDERDRIVE_ENABLE() (PWR->CR |= (uint32_t)PWR_CR_UDEN)
187 #define __HAL_PWR_UNDERDRIVE_DISABLE() (PWR->CR &= (uint32_t)(~PWR_CR_UDEN))
201 #define __HAL_PWR_GET_ODRUDR_FLAG(__FLAG__) ((PWR->CSR & (__FLAG__)) == (__FLAG__))
206 #define __HAL_PWR_CLEAR_ODRUDR_FLAG() (PWR->CSR |= PWR_FLAG_UDRDY)
228 #if defined(STM32F469xx) || defined(STM32F479xx)
229 void HAL_PWREx_EnableWakeUpPinPolarityRisingEdge(
void);
230 void HAL_PWREx_EnableWakeUpPinPolarityFallingEdge(
void);
233 #if defined(STM32F410Tx) || defined(STM32F410Cx) || defined(STM32F410Rx) || defined(STM32F401xC) ||\
234 defined(STM32F401xE) || defined(STM32F411xE) || defined(STM32F412Zx) || defined(STM32F412Vx) ||\
235 defined(STM32F412Rx) || defined(STM32F412Cx) || defined(STM32F413xx) || defined(STM32F423xx)
236 void HAL_PWREx_EnableMainRegulatorLowVoltage(
void);
237 void HAL_PWREx_DisableMainRegulatorLowVoltage(
void);
238 void HAL_PWREx_EnableLowRegulatorLowVoltage(
void);
239 void HAL_PWREx_DisableLowRegulatorLowVoltage(
void);
243 #if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) || defined(STM32F446xx) ||\
244 defined(STM32F469xx) || defined(STM32F479xx)
270 #define FPDS_BIT_NUMBER PWR_CR_FPDS_Pos
271 #define CR_FPDS_BB (uint32_t)(PERIPH_BB_BASE + (PWR_CR_OFFSET_BB * 32U) + (FPDS_BIT_NUMBER * 4U))
274 #define ODEN_BIT_NUMBER PWR_CR_ODEN_Pos
275 #define CR_ODEN_BB (uint32_t)(PERIPH_BB_BASE + (PWR_CR_OFFSET_BB * 32U) + (ODEN_BIT_NUMBER * 4U))
278 #define ODSWEN_BIT_NUMBER PWR_CR_ODSWEN_Pos
279 #define CR_ODSWEN_BB (uint32_t)(PERIPH_BB_BASE + (PWR_CR_OFFSET_BB * 32U) + (ODSWEN_BIT_NUMBER * 4U))
282 #define MRLVDS_BIT_NUMBER PWR_CR_MRLVDS_Pos
283 #define CR_MRLVDS_BB (uint32_t)(PERIPH_BB_BASE + (PWR_CR_OFFSET_BB * 32U) + (MRLVDS_BIT_NUMBER * 4U))
286 #define LPLVDS_BIT_NUMBER PWR_CR_LPLVDS_Pos
287 #define CR_LPLVDS_BB (uint32_t)(PERIPH_BB_BASE + (PWR_CR_OFFSET_BB * 32U) + (LPLVDS_BIT_NUMBER * 4U))
298 #define BRE_BIT_NUMBER PWR_CSR_BRE_Pos
299 #define CSR_BRE_BB (uint32_t)(PERIPH_BB_BASE + (PWR_CSR_OFFSET_BB * 32U) + (BRE_BIT_NUMBER * 4U))
301 #if defined(STM32F469xx) || defined(STM32F479xx)
303 #define WUPP_BIT_NUMBER PWR_CSR_WUPP_Pos
304 #define CSR_WUPP_BB (PERIPH_BB_BASE + (PWR_CSR_OFFSET_BB * 32U) + (WUPP_BIT_NUMBER * 4U))
322 #if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) ||\
323 defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
324 #define IS_PWR_REGULATOR_UNDERDRIVE(REGULATOR) (((REGULATOR) == PWR_MAINREGULATOR_UNDERDRIVE_ON) || \
325 ((REGULATOR) == PWR_LOWPOWERREGULATOR_UNDERDRIVE_ON))
328 #if defined(STM32F405xx) || defined(STM32F407xx) || defined(STM32F415xx) || defined(STM32F417xx)
329 #define IS_PWR_VOLTAGE_SCALING_RANGE(VOLTAGE) (((VOLTAGE) == PWR_REGULATOR_VOLTAGE_SCALE1) || \
330 ((VOLTAGE) == PWR_REGULATOR_VOLTAGE_SCALE2))
332 #define IS_PWR_VOLTAGE_SCALING_RANGE(VOLTAGE) (((VOLTAGE) == PWR_REGULATOR_VOLTAGE_SCALE1) || \
333 ((VOLTAGE) == PWR_REGULATOR_VOLTAGE_SCALE2) || \
334 ((VOLTAGE) == PWR_REGULATOR_VOLTAGE_SCALE3))
337 #if defined(STM32F446xx)
338 #define IS_PWR_WAKEUP_PIN(PIN) (((PIN) == PWR_WAKEUP_PIN1) || ((PIN) == PWR_WAKEUP_PIN2))
339 #elif defined(STM32F410Tx) || defined(STM32F410Cx) || defined(STM32F410Rx) || defined(STM32F412Zx) ||\
340 defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F412Cx) || defined(STM32F413xx) ||\
342 #define IS_PWR_WAKEUP_PIN(PIN) (((PIN) == PWR_WAKEUP_PIN1) || ((PIN) == PWR_WAKEUP_PIN2) || \
343 ((PIN) == PWR_WAKEUP_PIN3))
345 #define IS_PWR_WAKEUP_PIN(PIN) ((PIN) == PWR_WAKEUP_PIN1)