1 /** 2 ****************************************************************************** 3 * @file stm32f0xx_hal_pwr.h 4 * @author MCD Application Team 5 * @brief Header file of PWR HAL module. 6 ****************************************************************************** 7 * @attention 8 * 9 * Copyright (c) 2016 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 __STM32F0xx_HAL_PWR_H 21 #define __STM32F0xx_HAL_PWR_H 22 23 #ifdef __cplusplus 24 extern "C" { 25 #endif 26 27 /* Includes ------------------------------------------------------------------*/ 28 #include "stm32f0xx_hal_def.h" 29 30 /** @addtogroup STM32F0xx_HAL_Driver 31 * @{ 32 */ 33 34 /** @addtogroup PWR PWR 35 * @{ 36 */ 37 38 /* Exported types ------------------------------------------------------------*/ 39 /* Exported constants --------------------------------------------------------*/ 40 41 /** @defgroup PWR_Exported_Constants PWR Exported Constants 42 * @{ 43 */ 44 45 /** @defgroup PWR_Regulator_state_in_STOP_mode PWR Regulator state in STOP mode 46 * @{ 47 */ 48 #define PWR_MAINREGULATOR_ON (0x00000000U) 49 #define PWR_LOWPOWERREGULATOR_ON PWR_CR_LPDS 50 51 #define IS_PWR_REGULATOR(REGULATOR) (((REGULATOR) == PWR_MAINREGULATOR_ON) || \ 52 ((REGULATOR) == PWR_LOWPOWERREGULATOR_ON)) 53 /** 54 * @} 55 */ 56 57 /** @defgroup PWR_SLEEP_mode_entry PWR SLEEP mode entry 58 * @{ 59 */ 60 #define PWR_SLEEPENTRY_WFI ((uint8_t)0x01U) 61 #define PWR_SLEEPENTRY_WFE ((uint8_t)0x02U) 62 #define IS_PWR_SLEEP_ENTRY(ENTRY) (((ENTRY) == PWR_SLEEPENTRY_WFI) || ((ENTRY) == PWR_SLEEPENTRY_WFE)) 63 /** 64 * @} 65 */ 66 67 /** @defgroup PWR_STOP_mode_entry PWR STOP mode entry 68 * @{ 69 */ 70 #define PWR_STOPENTRY_WFI ((uint8_t)0x01U) 71 #define PWR_STOPENTRY_WFE ((uint8_t)0x02U) 72 #define IS_PWR_STOP_ENTRY(ENTRY) (((ENTRY) == PWR_STOPENTRY_WFI) || ((ENTRY) == PWR_STOPENTRY_WFE)) 73 /** 74 * @} 75 */ 76 77 78 /** 79 * @} 80 */ 81 82 /* Exported macro ------------------------------------------------------------*/ 83 /** @defgroup PWR_Exported_Macro PWR Exported Macro 84 * @{ 85 */ 86 87 /** @brief Check PWR flag is set or not. 88 * @param __FLAG__ specifies the flag to check. 89 * This parameter can be one of the following values: 90 * @arg PWR_FLAG_WU: Wake Up flag. This flag indicates that a wakeup event 91 * was received from the WKUP pin or from the RTC alarm (Alarm A), 92 * RTC Tamper event, RTC TimeStamp event or RTC Wakeup. 93 * An additional wakeup event is detected if the WKUP pin is enabled 94 * (by setting the EWUP bit) when the WKUP pin level is already high. 95 * @arg PWR_FLAG_SB: StandBy flag. This flag indicates that the system was 96 * resumed from StandBy mode. 97 * @arg PWR_FLAG_PVDO: PVD Output. This flag is valid only if PVD is enabled 98 * by the HAL_PWR_EnablePVD() function. The PVD is stopped by Standby mode 99 * For this reason, this bit is equal to 0 after Standby or reset 100 * until the PVDE bit is set. 101 * Warning: this Flag is not available on STM32F030x8 products 102 * @arg PWR_FLAG_VREFINTRDY: This flag indicates that the internal reference 103 * voltage VREFINT is ready. 104 * Warning: this Flag is not available on STM32F030x8 products 105 * @retval The new state of __FLAG__ (TRUE or FALSE). 106 */ 107 #define __HAL_PWR_GET_FLAG(__FLAG__) ((PWR->CSR & (__FLAG__)) == (__FLAG__)) 108 109 /** @brief Clear the PWR's pending flags. 110 * @param __FLAG__ specifies the flag to clear. 111 * This parameter can be one of the following values: 112 * @arg PWR_FLAG_WU: Wake Up flag 113 * @arg PWR_FLAG_SB: StandBy flag 114 */ 115 #define __HAL_PWR_CLEAR_FLAG(__FLAG__) (PWR->CR |= (__FLAG__) << 2U) 116 117 118 /** 119 * @} 120 */ 121 122 /* Include PWR HAL Extension module */ 123 #include "stm32f0xx_hal_pwr_ex.h" 124 125 /* Exported functions --------------------------------------------------------*/ 126 127 /** @addtogroup PWR_Exported_Functions PWR Exported Functions 128 * @{ 129 */ 130 131 /** @addtogroup PWR_Exported_Functions_Group1 Initialization and de-initialization functions 132 * @{ 133 */ 134 135 /* Initialization and de-initialization functions *****************************/ 136 void HAL_PWR_DeInit(void); 137 138 /** 139 * @} 140 */ 141 142 /** @addtogroup PWR_Exported_Functions_Group2 Peripheral Control functions 143 * @{ 144 */ 145 146 /* Peripheral Control functions **********************************************/ 147 void HAL_PWR_EnableBkUpAccess(void); 148 void HAL_PWR_DisableBkUpAccess(void); 149 150 /* WakeUp pins configuration functions ****************************************/ 151 void HAL_PWR_EnableWakeUpPin(uint32_t WakeUpPinx); 152 void HAL_PWR_DisableWakeUpPin(uint32_t WakeUpPinx); 153 154 /* Low Power modes configuration functions ************************************/ 155 void HAL_PWR_EnterSTOPMode(uint32_t Regulator, uint8_t STOPEntry); 156 void HAL_PWR_EnterSLEEPMode(uint32_t Regulator, uint8_t SLEEPEntry); 157 void HAL_PWR_EnterSTANDBYMode(void); 158 159 void HAL_PWR_EnableSleepOnExit(void); 160 void HAL_PWR_DisableSleepOnExit(void); 161 void HAL_PWR_EnableSEVOnPend(void); 162 void HAL_PWR_DisableSEVOnPend(void); 163 164 /** 165 * @} 166 */ 167 168 /** 169 * @} 170 */ 171 172 /** 173 * @} 174 */ 175 176 /** 177 * @} 178 */ 179 180 #ifdef __cplusplus 181 } 182 #endif 183 184 185 #endif /* __STM32F0xx_HAL_PWR_H */ 186