]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_M7_STM32F7_STM32756G-EVAL/ST_Library/include/stm32f7xx_hal_pwr_ex.h
Update version number ready for V8.2.1 release.
[freertos] / FreeRTOS / Demo / CORTEX_M7_STM32F7_STM32756G-EVAL / ST_Library / include / stm32f7xx_hal_pwr_ex.h
1 /**\r
2   ******************************************************************************\r
3   * @file    stm32f7xx_hal_pwr_ex.h\r
4   * @author  MCD Application Team\r
5   * @version V0.3.0\r
6   * @date    06-March-2015\r
7   * @brief   Header file of PWR HAL Extension module.\r
8   ******************************************************************************\r
9   * @attention\r
10   *\r
11   * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>\r
12   *\r
13   * Redistribution and use in source and binary forms, with or without modification,\r
14   * are permitted provided that the following conditions are met:\r
15   *   1. Redistributions of source code must retain the above copyright notice,\r
16   *      this list of conditions and the following disclaimer.\r
17   *   2. Redistributions in binary form must reproduce the above copyright notice,\r
18   *      this list of conditions and the following disclaimer in the documentation\r
19   *      and/or other materials provided with the distribution.\r
20   *   3. Neither the name of STMicroelectronics nor the names of its contributors\r
21   *      may be used to endorse or promote products derived from this software\r
22   *      without specific prior written permission.\r
23   *\r
24   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"\r
25   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
26   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\r
27   * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\r
28   * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
29   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\r
30   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\r
31   * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\r
32   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\r
33   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
34   *\r
35   ******************************************************************************\r
36   */ \r
37 \r
38 /* Define to prevent recursive inclusion -------------------------------------*/\r
39 #ifndef __STM32F7xx_HAL_PWR_EX_H\r
40 #define __STM32F7xx_HAL_PWR_EX_H\r
41 \r
42 #ifdef __cplusplus\r
43  extern "C" {\r
44 #endif\r
45 \r
46 /* Includes ------------------------------------------------------------------*/\r
47 #include "stm32f7xx_hal_def.h"\r
48 \r
49 /** @addtogroup STM32F7xx_HAL_Driver\r
50   * @{\r
51   */\r
52 \r
53 /** @addtogroup PWREx\r
54   * @{\r
55   */ \r
56 \r
57 /* Exported types ------------------------------------------------------------*/ \r
58 /* Exported constants --------------------------------------------------------*/\r
59 /** @defgroup PWREx_Exported_Constants PWREx Exported Constants\r
60   * @{\r
61   */\r
62 /** @defgroup PWREx_WakeUp_Pins PWREx Wake Up Pins\r
63   * @{\r
64   */\r
65 #define PWR_WAKEUP_PIN1                PWR_CSR2_EWUP1\r
66 #define PWR_WAKEUP_PIN2                PWR_CSR2_EWUP2\r
67 #define PWR_WAKEUP_PIN3                PWR_CSR2_EWUP3\r
68 #define PWR_WAKEUP_PIN4                PWR_CSR2_EWUP4\r
69 #define PWR_WAKEUP_PIN5                PWR_CSR2_EWUP5\r
70 #define PWR_WAKEUP_PIN6                PWR_CSR2_EWUP6\r
71 #define PWR_WAKEUP_PIN1_HIGH           PWR_CSR2_EWUP1\r
72 #define PWR_WAKEUP_PIN2_HIGH           PWR_CSR2_EWUP2\r
73 #define PWR_WAKEUP_PIN3_HIGH           PWR_CSR2_EWUP3\r
74 #define PWR_WAKEUP_PIN4_HIGH           PWR_CSR2_EWUP4\r
75 #define PWR_WAKEUP_PIN5_HIGH           PWR_CSR2_EWUP5\r
76 #define PWR_WAKEUP_PIN6_HIGH           PWR_CSR2_EWUP6\r
77 #define PWR_WAKEUP_PIN1_LOW            (uint32_t)((PWR_CR2_WUPP1<<6) | PWR_CSR2_EWUP1)\r
78 #define PWR_WAKEUP_PIN2_LOW            (uint32_t)((PWR_CR2_WUPP2<<6) | PWR_CSR2_EWUP2)\r
79 #define PWR_WAKEUP_PIN3_LOW            (uint32_t)((PWR_CR2_WUPP3<<6) | PWR_CSR2_EWUP3)\r
80 #define PWR_WAKEUP_PIN4_LOW            (uint32_t)((PWR_CR2_WUPP4<<6) | PWR_CSR2_EWUP4)\r
81 #define PWR_WAKEUP_PIN5_LOW            (uint32_t)((PWR_CR2_WUPP5<<6) | PWR_CSR2_EWUP5)\r
82 #define PWR_WAKEUP_PIN6_LOW            (uint32_t)((PWR_CR2_WUPP6<<6) | PWR_CSR2_EWUP6)\r
83 \r
84 /**\r
85   * @}\r
86   */\r
87         \r
88 /** @defgroup PWREx_Regulator_state_in_UnderDrive_mode PWREx Regulator state in UnderDrive mode\r
89   * @{\r
90   */\r
91 #define PWR_MAINREGULATOR_UNDERDRIVE_ON                       PWR_CR1_MRUDS\r
92 #define PWR_LOWPOWERREGULATOR_UNDERDRIVE_ON                   ((uint32_t)(PWR_CR1_LPDS | PWR_CR1_LPUDS))\r
93 /**\r
94   * @}\r
95   */ \r
96   \r
97 /** @defgroup PWREx_Over_Under_Drive_Flag PWREx Over Under Drive Flag\r
98   * @{\r
99   */\r
100 #define PWR_FLAG_ODRDY                  PWR_CSR1_ODRDY\r
101 #define PWR_FLAG_ODSWRDY                PWR_CSR1_ODSWRDY\r
102 #define PWR_FLAG_UDRDY                  PWR_CSR1_UDSWRDY\r
103 /**\r
104   * @}\r
105   */\r
106         \r
107 /** @defgroup PWREx_Wakeup_Pins_Flag PWREx Wake Up Pin Flags\r
108   * @{\r
109   */\r
110 #define PWR_WAKEUP_PIN_FLAG1            PWR_CSR2_WUPF1\r
111 #define PWR_WAKEUP_PIN_FLAG2            PWR_CSR2_WUPF2\r
112 #define PWR_WAKEUP_PIN_FLAG3            PWR_CSR2_WUPF3\r
113 #define PWR_WAKEUP_PIN_FLAG4            PWR_CSR2_WUPF4\r
114 #define PWR_WAKEUP_PIN_FLAG5            PWR_CSR2_WUPF5\r
115 #define PWR_WAKEUP_PIN_FLAG6            PWR_CSR2_WUPF6\r
116 /**\r
117   * @}\r
118   */\r
119 \r
120 /**\r
121   * @}\r
122   */ \r
123   \r
124 /* Exported macro ------------------------------------------------------------*/\r
125 /** @defgroup PWREx_Exported_Macro PWREx Exported Macro\r
126   *  @{\r
127   */\r
128 /** @brief Macros to enable or disable the Over drive mode.\r
129   */\r
130 #define __HAL_PWR_OVERDRIVE_ENABLE() (PWR->CR1 |= (uint32_t)PWR_CR1_ODEN)\r
131 #define __HAL_PWR_OVERDRIVE_DISABLE() (PWR->CR1 &= (uint32_t)(~PWR_CR1_ODEN))\r
132 \r
133 /** @brief Macros to enable or disable the Over drive switching.\r
134   */\r
135 #define __HAL_PWR_OVERDRIVESWITCHING_ENABLE() (PWR->CR1 |= (uint32_t)PWR_CR1_ODSWEN)\r
136 #define __HAL_PWR_OVERDRIVESWITCHING_DISABLE() (PWR->CR1 &= (uint32_t)(~PWR_CR1_ODSWEN))\r
137 \r
138 /** @brief Macros to enable or disable the Under drive mode.\r
139   * @note  This mode is enabled only with STOP low power mode.\r
140   *        In this mode, the 1.2V domain is preserved in reduced leakage mode. This \r
141   *        mode is only available when the main regulator or the low power regulator \r
142   *        is in low voltage mode.      \r
143   * @note  If the Under-drive mode was enabled, it is automatically disabled after \r
144   *        exiting Stop mode. \r
145   *        When the voltage regulator operates in Under-drive mode, an additional  \r
146   *        startup delay is induced when waking up from Stop mode.\r
147   */\r
148 #define __HAL_PWR_UNDERDRIVE_ENABLE() (PWR->CR1 |= (uint32_t)PWR_CR1_UDEN)\r
149 #define __HAL_PWR_UNDERDRIVE_DISABLE() (PWR->CR1 &= (uint32_t)(~PWR_CR1_UDEN))\r
150 \r
151 /** @brief  Check PWR flag is set or not.\r
152   * @param  __FLAG__: specifies the flag to check.\r
153   *         This parameter can be one of the following values:\r
154   *            @arg PWR_FLAG_ODRDY: This flag indicates that the Over-drive mode\r
155   *                                 is ready \r
156   *            @arg PWR_FLAG_ODSWRDY: This flag indicates that the Over-drive mode\r
157   *                                   switching is ready  \r
158   *            @arg PWR_FLAG_UDRDY: This flag indicates that the Under-drive mode\r
159   *                                 is enabled in Stop mode\r
160   * @retval The new state of __FLAG__ (TRUE or FALSE).\r
161   */\r
162 #define __HAL_PWR_GET_ODRUDR_FLAG(__FLAG__) ((PWR->CSR1 & (__FLAG__)) == (__FLAG__))\r
163 \r
164 /** @brief Clear the Under-Drive Ready flag.\r
165   */\r
166 #define __HAL_PWR_CLEAR_ODRUDR_FLAG() (PWR->CSR1 |= PWR_FLAG_UDRDY)\r
167 \r
168 /** @brief  Check Wake Up flag is set or not.\r
169   * @param  __WUFLAG__: specifies the Wake Up flag to check.\r
170   *          This parameter can be one of the following values:\r
171   *            @arg PWR_WAKEUP_PIN_FLAG1: Wakeup Pin Flag for PA0\r
172   *            @arg PWR_WAKEUP_PIN_FLAG2: Wakeup Pin Flag for PA2\r
173   *            @arg PWR_WAKEUP_PIN_FLAG3: Wakeup Pin Flag for PC1\r
174   *            @arg PWR_WAKEUP_PIN_FLAG4: Wakeup Pin Flag for PC13\r
175   *            @arg PWR_WAKEUP_PIN_FLAG5: Wakeup Pin Flag for PI8\r
176   *            @arg PWR_WAKEUP_PIN_FLAG6: Wakeup Pin Flag for PI11          \r
177   */\r
178 #define __HAL_PWR_GET_WAKEUP_FLAG(__WUFLAG__) (PWR->CSR2 & (__WUFLAG__))\r
179 \r
180 /** @brief  Clear the WakeUp pins flags.\r
181   * @param  __WUFLAG__: specifies the Wake Up pin flag to clear.\r
182   *          This parameter can be one of the following values:\r
183   *            @arg PWR_WAKEUP_PIN_FLAG1: Wakeup Pin Flag for PA0\r
184   *            @arg PWR_WAKEUP_PIN_FLAG2: Wakeup Pin Flag for PA2\r
185   *            @arg PWR_WAKEUP_PIN_FLAG3: Wakeup Pin Flag for PC1\r
186   *            @arg PWR_WAKEUP_PIN_FLAG4: Wakeup Pin Flag for PC13\r
187   *            @arg PWR_WAKEUP_PIN_FLAG5: Wakeup Pin Flag for PI8\r
188   *            @arg PWR_WAKEUP_PIN_FLAG6: Wakeup Pin Flag for PI11          \r
189   */\r
190 #define __HAL_PWR_CLEAR_WAKEUP_FLAG(__WUFLAG__) (PWR->CR2 |=  (__WUFLAG__))\r
191 /**\r
192   * @}\r
193   */\r
194 /* Exported functions --------------------------------------------------------*/\r
195 /** @addtogroup PWREx_Exported_Functions PWREx Exported Functions\r
196   *  @{\r
197   */\r
198  \r
199 /** @addtogroup PWREx_Exported_Functions_Group1\r
200   * @{\r
201   */\r
202 uint32_t HAL_PWREx_GetVoltageRange(void);\r
203 HAL_StatusTypeDef HAL_PWREx_ControlVoltageScaling(uint32_t VoltageScaling);\r
204 \r
205 void HAL_PWREx_EnableFlashPowerDown(void);\r
206 void HAL_PWREx_DisableFlashPowerDown(void); \r
207 HAL_StatusTypeDef HAL_PWREx_EnableBkUpReg(void);\r
208 HAL_StatusTypeDef HAL_PWREx_DisableBkUpReg(void); \r
209 \r
210 void HAL_PWREx_EnableMainRegulatorLowVoltage(void);\r
211 void HAL_PWREx_DisableMainRegulatorLowVoltage(void);\r
212 void HAL_PWREx_EnableLowRegulatorLowVoltage(void);\r
213 void HAL_PWREx_DisableLowRegulatorLowVoltage(void);\r
214 \r
215 HAL_StatusTypeDef HAL_PWREx_EnableOverDrive(void);\r
216 HAL_StatusTypeDef HAL_PWREx_DisableOverDrive(void);\r
217 HAL_StatusTypeDef HAL_PWREx_EnterUnderDriveSTOPMode(uint32_t Regulator, uint8_t STOPEntry);\r
218 \r
219 /**\r
220   * @}\r
221   */\r
222 \r
223 /**\r
224   * @}\r
225   */\r
226 /* Private types -------------------------------------------------------------*/\r
227 /* Private variables ---------------------------------------------------------*/\r
228 /* Private constants ---------------------------------------------------------*/\r
229 /* Private macros ------------------------------------------------------------*/\r
230 /** @defgroup PWREx_Private_Macros PWREx Private Macros\r
231   * @{\r
232   */\r
233 \r
234 /** @defgroup PWREx_IS_PWR_Definitions PWREx Private macros to check input parameters\r
235   * @{\r
236   */\r
237 #define IS_PWR_REGULATOR_UNDERDRIVE(REGULATOR) (((REGULATOR) == PWR_MAINREGULATOR_UNDERDRIVE_ON) || \\r
238                                                 ((REGULATOR) == PWR_LOWPOWERREGULATOR_UNDERDRIVE_ON))\r
239 #define IS_PWR_WAKEUP_PIN(__PIN__)         (((__PIN__) == PWR_WAKEUP_PIN1)       || \\r
240                                             ((__PIN__) == PWR_WAKEUP_PIN2)       || \\r
241                                             ((__PIN__) == PWR_WAKEUP_PIN3)       || \\r
242                                             ((__PIN__) == PWR_WAKEUP_PIN4)       || \\r
243                                             ((__PIN__) == PWR_WAKEUP_PIN5)       || \\r
244                                             ((__PIN__) == PWR_WAKEUP_PIN6)               || \\r
245                                             ((__PIN__) == PWR_WAKEUP_PIN1_HIGH)  || \\r
246                                             ((__PIN__) == PWR_WAKEUP_PIN2_HIGH)  || \\r
247                                             ((__PIN__) == PWR_WAKEUP_PIN3_HIGH)  || \\r
248                                             ((__PIN__) == PWR_WAKEUP_PIN4_HIGH)  || \\r
249                                             ((__PIN__) == PWR_WAKEUP_PIN5_HIGH)  || \\r
250                                             ((__PIN__) == PWR_WAKEUP_PIN6_HIGH)  || \\r
251                                             ((__PIN__) == PWR_WAKEUP_PIN1_LOW)   || \\r
252                                             ((__PIN__) == PWR_WAKEUP_PIN2_LOW)   || \\r
253                                             ((__PIN__) == PWR_WAKEUP_PIN3_LOW)   || \\r
254                                             ((__PIN__) == PWR_WAKEUP_PIN4_LOW)   || \\r
255                                             ((__PIN__) == PWR_WAKEUP_PIN5_LOW)   || \\r
256                                             ((__PIN__) == PWR_WAKEUP_PIN6_LOW))\r
257 /**\r
258   * @}\r
259   */\r
260 \r
261 /**\r
262   * @}\r
263   */\r
264 \r
265 /**\r
266   * @}\r
267   */ \r
268 \r
269 /**\r
270   * @}\r
271   */\r
272   \r
273 #ifdef __cplusplus\r
274 }\r
275 #endif\r
276 \r
277 \r
278 #endif /* __STM32F7xx_HAL_PWR_EX_H */\r
279 \r
280 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/\r