• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2   ******************************************************************************
3   * @file    stm32f4xx_pwr.h
4   * @author  MCD Application Team
5   * @version V1.4.0
6   * @date    04-August-2014
7   * @brief   This file contains all the functions prototypes for the PWR firmware
8   *          library.
9   ******************************************************************************
10   * @attention
11   *
12   * <h2><center>&copy; COPYRIGHT 2014 STMicroelectronics</center></h2>
13   *
14   * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
15   * You may not use this file except in compliance with the License.
16   * You may obtain a copy of the License at:
17   *
18   *        http://www.st.com/software_license_agreement_liberty_v2
19   *
20   * Unless required by applicable law or agreed to in writing, software
21   * distributed under the License is distributed on an "AS IS" BASIS,
22   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23   * See the License for the specific language governing permissions and
24   * limitations under the License.
25   *
26   ******************************************************************************
27   */
28 
29 /* Define to prevent recursive inclusion -------------------------------------*/
30 #ifndef __STM32F4xx_PWR_H
31 #define __STM32F4xx_PWR_H
32 
33 #ifdef __cplusplus
34  extern "C" {
35 #endif
36 
37 /* Includes ------------------------------------------------------------------*/
38 #include "stm32f4xx.h"
39 
40 /** @addtogroup STM32F4xx_StdPeriph_Driver
41   * @{
42   */
43 
44 /** @addtogroup PWR
45   * @{
46   */
47 
48 /* Exported types ------------------------------------------------------------*/
49 /* Exported constants --------------------------------------------------------*/
50 
51 /** @defgroup PWR_Exported_Constants
52   * @{
53   */
54 
55 /** @defgroup PWR_PVD_detection_level
56   * @{
57   */
58 #define PWR_PVDLevel_0                  PWR_CR_PLS_LEV0
59 #define PWR_PVDLevel_1                  PWR_CR_PLS_LEV1
60 #define PWR_PVDLevel_2                  PWR_CR_PLS_LEV2
61 #define PWR_PVDLevel_3                  PWR_CR_PLS_LEV3
62 #define PWR_PVDLevel_4                  PWR_CR_PLS_LEV4
63 #define PWR_PVDLevel_5                  PWR_CR_PLS_LEV5
64 #define PWR_PVDLevel_6                  PWR_CR_PLS_LEV6
65 #define PWR_PVDLevel_7                  PWR_CR_PLS_LEV7
66 
67 #define IS_PWR_PVD_LEVEL(LEVEL) (((LEVEL) == PWR_PVDLevel_0) || ((LEVEL) == PWR_PVDLevel_1)|| \
68                                  ((LEVEL) == PWR_PVDLevel_2) || ((LEVEL) == PWR_PVDLevel_3)|| \
69                                  ((LEVEL) == PWR_PVDLevel_4) || ((LEVEL) == PWR_PVDLevel_5)|| \
70                                  ((LEVEL) == PWR_PVDLevel_6) || ((LEVEL) == PWR_PVDLevel_7))
71 /**
72   * @}
73   */
74 
75 
76 /** @defgroup PWR_Regulator_state_in_STOP_mode
77   * @{
78   */
79 #define PWR_MainRegulator_ON                        ((uint32_t)0x00000000)
80 #define PWR_LowPowerRegulator_ON                    PWR_CR_LPDS
81 
82 /* --- PWR_Legacy ---*/
83 #define PWR_Regulator_ON                            PWR_MainRegulator_ON
84 #define PWR_Regulator_LowPower                      PWR_LowPowerRegulator_ON
85 
86 #define IS_PWR_REGULATOR(REGULATOR) (((REGULATOR) == PWR_MainRegulator_ON) || \
87                                      ((REGULATOR) == PWR_LowPowerRegulator_ON))
88 
89 /**
90   * @}
91   */
92 
93 /** @defgroup PWR_Regulator_state_in_UnderDrive_mode
94   * @{
95   */
96 #define PWR_MainRegulator_UnderDrive_ON               PWR_CR_MRUDS
97 #define PWR_LowPowerRegulator_UnderDrive_ON           ((uint32_t)(PWR_CR_LPDS | PWR_CR_LPUDS))
98 
99 #define IS_PWR_REGULATOR_UNDERDRIVE(REGULATOR) (((REGULATOR) == PWR_MainRegulator_UnderDrive_ON) || \
100                                                 ((REGULATOR) == PWR_LowPowerRegulator_UnderDrive_ON))
101 
102 /**
103   * @}
104   */
105 
106 /** @defgroup PWR_STOP_mode_entry
107   * @{
108   */
109 #define PWR_STOPEntry_WFI               ((uint8_t)0x01)
110 #define PWR_STOPEntry_WFE               ((uint8_t)0x02)
111 #define IS_PWR_STOP_ENTRY(ENTRY) (((ENTRY) == PWR_STOPEntry_WFI) || ((ENTRY) == PWR_STOPEntry_WFE))
112 /**
113   * @}
114   */
115 
116 /** @defgroup PWR_Regulator_Voltage_Scale
117   * @{
118   */
119 #define PWR_Regulator_Voltage_Scale1    ((uint32_t)0x0000C000)
120 #define PWR_Regulator_Voltage_Scale2    ((uint32_t)0x00008000)
121 #define PWR_Regulator_Voltage_Scale3    ((uint32_t)0x00004000)
122 #define IS_PWR_REGULATOR_VOLTAGE(VOLTAGE) (((VOLTAGE) == PWR_Regulator_Voltage_Scale1) || \
123                                            ((VOLTAGE) == PWR_Regulator_Voltage_Scale2) || \
124                                            ((VOLTAGE) == PWR_Regulator_Voltage_Scale3))
125 /**
126   * @}
127   */
128 
129 /** @defgroup PWR_Flag
130   * @{
131   */
132 #define PWR_FLAG_WU                     PWR_CSR_WUF
133 #define PWR_FLAG_SB                     PWR_CSR_SBF
134 #define PWR_FLAG_PVDO                   PWR_CSR_PVDO
135 #define PWR_FLAG_BRR                    PWR_CSR_BRR
136 #define PWR_FLAG_VOSRDY                 PWR_CSR_VOSRDY
137 #define PWR_FLAG_ODRDY                  PWR_CSR_ODRDY
138 #define PWR_FLAG_ODSWRDY                PWR_CSR_ODSWRDY
139 #define PWR_FLAG_UDRDY                  PWR_CSR_UDSWRDY
140 
141 /* --- FLAG Legacy ---*/
142 #define PWR_FLAG_REGRDY                  PWR_FLAG_VOSRDY
143 
144 #define IS_PWR_GET_FLAG(FLAG) (((FLAG) == PWR_FLAG_WU) || ((FLAG) == PWR_FLAG_SB) || \
145                                ((FLAG) == PWR_FLAG_PVDO) || ((FLAG) == PWR_FLAG_BRR) || \
146                                ((FLAG) == PWR_FLAG_VOSRDY) || ((FLAG) == PWR_FLAG_ODRDY) || \
147                                ((FLAG) == PWR_FLAG_ODSWRDY) || ((FLAG) == PWR_FLAG_UDRDY))
148 
149 
150 #define IS_PWR_CLEAR_FLAG(FLAG) (((FLAG) == PWR_FLAG_WU) || ((FLAG) == PWR_FLAG_SB) || \
151                                  ((FLAG) == PWR_FLAG_UDRDY))
152 
153 /**
154   * @}
155   */
156 
157 /**
158   * @}
159   */
160 
161 /* Exported macro ------------------------------------------------------------*/
162 /* Exported functions --------------------------------------------------------*/
163 
164 /* Function used to set the PWR configuration to the default reset state ******/
165 void PWR_DeInit(void);
166 
167 /* Backup Domain Access function **********************************************/
168 void PWR_BackupAccessCmd(FunctionalState NewState);
169 
170 /* PVD configuration functions ************************************************/
171 void PWR_PVDLevelConfig(uint32_t PWR_PVDLevel);
172 void PWR_PVDCmd(FunctionalState NewState);
173 
174 /* WakeUp pins configuration functions ****************************************/
175 void PWR_WakeUpPinCmd(FunctionalState NewState);
176 
177 /* Main and Backup Regulators configuration functions *************************/
178 void PWR_BackupRegulatorCmd(FunctionalState NewState);
179 void PWR_MainRegulatorModeConfig(uint32_t PWR_Regulator_Voltage);
180 void PWR_OverDriveCmd(FunctionalState NewState);
181 void PWR_OverDriveSWCmd(FunctionalState NewState);
182 void PWR_UnderDriveCmd(FunctionalState NewState);
183 void PWR_MainRegulatorLowVoltageCmd(FunctionalState NewState);
184 void PWR_LowRegulatorLowVoltageCmd(FunctionalState NewState);
185 
186 /* FLASH Power Down configuration functions ***********************************/
187 void PWR_FlashPowerDownCmd(FunctionalState NewState);
188 
189 /* Low Power modes configuration functions ************************************/
190 void PWR_EnterSTOPMode(uint32_t PWR_Regulator, uint8_t PWR_STOPEntry);
191 void PWR_EnterUnderDriveSTOPMode(uint32_t PWR_Regulator, uint8_t PWR_STOPEntry);
192 void PWR_EnterSTANDBYMode(void);
193 
194 /* Flags management functions *************************************************/
195 FlagStatus PWR_GetFlagStatus(uint32_t PWR_FLAG);
196 void PWR_ClearFlag(uint32_t PWR_FLAG);
197 
198 #ifdef __cplusplus
199 }
200 #endif
201 
202 #endif /* __STM32F4xx_PWR_H */
203 
204 /**
205   * @}
206   */
207 
208 /**
209   * @}
210   */
211 
212 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
213