comparison Common/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_wwdg.h @ 160:e3ca52b8e7fa

Merge with FlipDisplay
author heinrichsweikamp
date Thu, 07 Mar 2019 15:06:43 +0100
parents c78bcbd5deda
children
comparison
equal deleted inserted replaced
80:cc2bb7bb8456 160:e3ca52b8e7fa
1 /**
2 ******************************************************************************
3 * @file stm32f4xx_hal_wwdg.h
4 * @author MCD Application Team
5 * @brief Header file of WWDG HAL module.
6 ******************************************************************************
7 * @attention
8 *
9 * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
10 *
11 * Redistribution and use in source and binary forms, with or without modification,
12 * are permitted provided that the following conditions are met:
13 * 1. Redistributions of source code must retain the above copyright notice,
14 * this list of conditions and the following disclaimer.
15 * 2. Redistributions in binary form must reproduce the above copyright notice,
16 * this list of conditions and the following disclaimer in the documentation
17 * and/or other materials provided with the distribution.
18 * 3. Neither the name of STMicroelectronics nor the names of its contributors
19 * may be used to endorse or promote products derived from this software
20 * without specific prior written permission.
21 *
22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
25 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
28 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
30 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 *
33 ******************************************************************************
34 */
35
36 /* Define to prevent recursive inclusion -------------------------------------*/
37 #ifndef __STM32F4xx_HAL_WWDG_H
38 #define __STM32F4xx_HAL_WWDG_H
39
40 #ifdef __cplusplus
41 extern "C" {
42 #endif
43
44 /* Includes ------------------------------------------------------------------*/
45 #include "stm32f4xx_hal_def.h"
46
47 /** @addtogroup STM32F4xx_HAL_Driver
48 * @{
49 */
50
51 /** @addtogroup WWDG
52 * @{
53 */
54
55 /* Exported types ------------------------------------------------------------*/
56 /** @defgroup WWDG_Exported_Types WWDG Exported Types
57 * @{
58 */
59
60 /**
61 * @brief WWDG Init structure definition
62 */
63 typedef struct
64 {
65 uint32_t Prescaler; /*!< Specifies the prescaler value of the WWDG.
66 This parameter can be a value of @ref WWDG_Prescaler */
67
68 uint32_t Window; /*!< Specifies the WWDG window value to be compared to the downcounter.
69 This parameter must be a number Min_Data = 0x40 and Max_Data = 0x7F */
70
71 uint32_t Counter; /*!< Specifies the WWDG free-running downcounter value.
72 This parameter must be a number between Min_Data = 0x40 and Max_Data = 0x7F */
73
74 uint32_t EWIMode ; /*!< Specifies if WWDG Early Wakeup Interupt is enable or not.
75 This parameter can be a value of @ref WWDG_EWI_Mode */
76
77 }WWDG_InitTypeDef;
78
79 /**
80 * @brief WWDG handle Structure definition
81 */
82 typedef struct
83 {
84 WWDG_TypeDef *Instance; /*!< Register base address */
85
86 WWDG_InitTypeDef Init; /*!< WWDG required parameters */
87
88 }WWDG_HandleTypeDef;
89 /**
90 * @}
91 */
92
93 /* Exported constants --------------------------------------------------------*/
94
95 /** @defgroup WWDG_Exported_Constants WWDG Exported Constants
96 * @{
97 */
98
99 /** @defgroup WWDG_Interrupt_definition WWDG Interrupt definition
100 * @{
101 */
102 #define WWDG_IT_EWI WWDG_CFR_EWI /*!< Early wakeup interrupt */
103 /**
104 * @}
105 */
106
107 /** @defgroup WWDG_Flag_definition WWDG Flag definition
108 * @brief WWDG Flag definition
109 * @{
110 */
111 #define WWDG_FLAG_EWIF WWDG_SR_EWIF /*!< Early wakeup interrupt flag */
112 /**
113 * @}
114 */
115
116 /** @defgroup WWDG_Prescaler WWDG Prescaler
117 * @{
118 */
119 #define WWDG_PRESCALER_1 0x00000000U /*!< WWDG counter clock = (PCLK1/4096)/1 */
120 #define WWDG_PRESCALER_2 WWDG_CFR_WDGTB0 /*!< WWDG counter clock = (PCLK1/4096)/2 */
121 #define WWDG_PRESCALER_4 WWDG_CFR_WDGTB1 /*!< WWDG counter clock = (PCLK1/4096)/4 */
122 #define WWDG_PRESCALER_8 WWDG_CFR_WDGTB /*!< WWDG counter clock = (PCLK1/4096)/8 */
123 /**
124 * @}
125 */
126
127 /** @defgroup WWDG_EWI_Mode WWDG Early Wakeup Interrupt Mode
128 * @{
129 */
130 #define WWDG_EWI_DISABLE 0x00000000U /*!< EWI Disable */
131 #define WWDG_EWI_ENABLE WWDG_CFR_EWI /*!< EWI Enable */
132 /**
133 * @}
134 */
135
136 /**
137 * @}
138 */
139
140 /* Private macros ------------------------------------------------------------*/
141
142 /** @defgroup WWDG_Private_Macros WWDG Private Macros
143 * @{
144 */
145 #define IS_WWDG_PRESCALER(__PRESCALER__) (((__PRESCALER__) == WWDG_PRESCALER_1) || \
146 ((__PRESCALER__) == WWDG_PRESCALER_2) || \
147 ((__PRESCALER__) == WWDG_PRESCALER_4) || \
148 ((__PRESCALER__) == WWDG_PRESCALER_8))
149
150 #define IS_WWDG_WINDOW(__WINDOW__) (((__WINDOW__) >= WWDG_CFR_W_6) && ((__WINDOW__) <= WWDG_CFR_W))
151
152 #define IS_WWDG_COUNTER(__COUNTER__) (((__COUNTER__) >= WWDG_CR_T_6) && ((__COUNTER__) <= WWDG_CR_T))
153
154 #define IS_WWDG_EWI_MODE(__MODE__) (((__MODE__) == WWDG_EWI_ENABLE) || \
155 ((__MODE__) == WWDG_EWI_DISABLE))
156 /**
157 * @}
158 */
159
160
161 /* Exported macros ------------------------------------------------------------*/
162
163 /** @defgroup WWDG_Exported_Macros WWDG Exported Macros
164 * @{
165 */
166
167 /**
168 * @brief Enables the WWDG peripheral.
169 * @param __HANDLE__ WWDG handle
170 * @retval None
171 */
172 #define __HAL_WWDG_ENABLE(__HANDLE__) SET_BIT((__HANDLE__)->Instance->CR, WWDG_CR_WDGA)
173
174 /**
175 * @brief Enables the WWDG early wakeup interrupt.
176 * @param __HANDLE__ WWDG handle
177 * @param __INTERRUPT__ specifies the interrupt to enable.
178 * This parameter can be one of the following values:
179 * @arg WWDG_IT_EWI: Early wakeup interrupt
180 * @note Once enabled this interrupt cannot be disabled except by a system reset.
181 * @retval None
182 */
183 #define __HAL_WWDG_ENABLE_IT(__HANDLE__, __INTERRUPT__) SET_BIT((__HANDLE__)->Instance->CFR, (__INTERRUPT__))
184
185 /**
186 * @brief Checks whether the selected WWDG interrupt has occurred or not.
187 * @param __HANDLE__ WWDG handle
188 * @param __INTERRUPT__ specifies the it to check.
189 * This parameter can be one of the following values:
190 * @arg WWDG_FLAG_EWIF: Early wakeup interrupt IT
191 * @retval The new state of WWDG_FLAG (SET or RESET).
192 */
193 #define __HAL_WWDG_GET_IT(__HANDLE__, __INTERRUPT__) __HAL_WWDG_GET_FLAG((__HANDLE__),(__INTERRUPT__))
194
195 /** @brief Clear the WWDG's interrupt pending bits
196 * bits to clear the selected interrupt pending bits.
197 * @param __HANDLE__ WWDG handle
198 * @param __INTERRUPT__ specifies the interrupt pending bit to clear.
199 * This parameter can be one of the following values:
200 * @arg WWDG_FLAG_EWIF: Early wakeup interrupt flag
201 */
202 #define __HAL_WWDG_CLEAR_IT(__HANDLE__, __INTERRUPT__) __HAL_WWDG_CLEAR_FLAG((__HANDLE__), (__INTERRUPT__))
203
204 /**
205 * @brief Check whether the specified WWDG flag is set or not.
206 * @param __HANDLE__ WWDG handle
207 * @param __FLAG__ specifies the flag to check.
208 * This parameter can be one of the following values:
209 * @arg WWDG_FLAG_EWIF: Early wakeup interrupt flag
210 * @retval The new state of WWDG_FLAG (SET or RESET).
211 */
212 #define __HAL_WWDG_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->SR & (__FLAG__)) == (__FLAG__))
213
214 /**
215 * @brief Clears the WWDG's pending flags.
216 * @param __HANDLE__ WWDG handle
217 * @param __FLAG__ specifies the flag to clear.
218 * This parameter can be one of the following values:
219 * @arg WWDG_FLAG_EWIF: Early wakeup interrupt flag
220 * @retval None
221 */
222 #define __HAL_WWDG_CLEAR_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->SR) = ~(__FLAG__))
223
224 /** @brief Checks if the specified WWDG interrupt source is enabled or disabled.
225 * @param __HANDLE__ WWDG Handle.
226 * @param __INTERRUPT__ specifies the WWDG interrupt source to check.
227 * This parameter can be one of the following values:
228 * @arg WWDG_IT_EWI: Early Wakeup Interrupt
229 * @retval state of __INTERRUPT__ (TRUE or FALSE).
230 */
231 #define __HAL_WWDG_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->CFR & (__INTERRUPT__)) == (__INTERRUPT__))
232
233 /**
234 * @}
235 */
236
237 /* Exported functions --------------------------------------------------------*/
238 /** @addtogroup WWDG_Exported_Functions
239 * @{
240 */
241
242 /** @addtogroup WWDG_Exported_Functions_Group1
243 * @{
244 */
245 /* Initialization/de-initialization functions **********************************/
246 HAL_StatusTypeDef HAL_WWDG_Init(WWDG_HandleTypeDef *hwwdg);
247 void HAL_WWDG_MspInit(WWDG_HandleTypeDef *hwwdg);
248 /**
249 * @}
250 */
251
252 /** @addtogroup WWDG_Exported_Functions_Group2
253 * @{
254 */
255 /* I/O operation functions ******************************************************/
256 HAL_StatusTypeDef HAL_WWDG_Refresh(WWDG_HandleTypeDef *hwwdg);
257 void HAL_WWDG_IRQHandler(WWDG_HandleTypeDef *hwwdg);
258 void HAL_WWDG_EarlyWakeupCallback(WWDG_HandleTypeDef* hwwdg);
259 /**
260 * @}
261 */
262
263 /**
264 * @}
265 */
266
267 /**
268 * @}
269 */
270
271 /**
272 * @}
273 */
274
275 #ifdef __cplusplus
276 }
277 #endif
278
279 #endif /* __STM32F4xx_HAL_WWDG_H */
280
281 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/