Subversion Repositories DashDisplay

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 mjames 1
/**
2
  ******************************************************************************
3
  * @file    stm32f1xx_hal_wwdg.h
4
  * @author  MCD Application Team
5
  * @version V1.0.1
6
  * @date    31-July-2015
7
  * @brief   Header file of WWDG HAL module.
8
  ******************************************************************************
9
  * @attention
10
  *
11
  * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
12
  *
13
  * Redistribution and use in source and binary forms, with or without modification,
14
  * are permitted provided that the following conditions are met:
15
  *   1. Redistributions of source code must retain the above copyright notice,
16
  *      this list of conditions and the following disclaimer.
17
  *   2. Redistributions in binary form must reproduce the above copyright notice,
18
  *      this list of conditions and the following disclaimer in the documentation
19
  *      and/or other materials provided with the distribution.
20
  *   3. Neither the name of STMicroelectronics nor the names of its contributors
21
  *      may be used to endorse or promote products derived from this software
22
  *      without specific prior written permission.
23
  *
24
  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
25
  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26
  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
27
  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
28
  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29
  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
30
  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
31
  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
32
  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
33
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
  *
35
  ******************************************************************************
36
  */
37
 
38
/* Define to prevent recursive inclusion -------------------------------------*/
39
#ifndef __STM32F1xx_HAL_WWDG_H
40
#define __STM32F1xx_HAL_WWDG_H
41
 
42
#ifdef __cplusplus
43
 extern "C" {
44
#endif
45
 
46
/* Includes ------------------------------------------------------------------*/
47
#include "stm32f1xx_hal_def.h"
48
 
49
/** @addtogroup STM32F1xx_HAL_Driver
50
  * @{
51
  */
52
 
53
/** @addtogroup WWDG
54
  * @{
55
  */
56
 
57
/* Exported types ------------------------------------------------------------*/
58
 
59
/** @defgroup WWDG_Exported_Types WWDG Exported Types
60
  * @{
61
  */
62
 
63
/**
64
  * @brief  WWDG HAL State Structure definition
65
  */
66
typedef enum
67
{
68
  HAL_WWDG_STATE_RESET     = 0x00,  /*!< WWDG not yet initialized or disabled */
69
  HAL_WWDG_STATE_READY     = 0x01,  /*!< WWDG initialized and ready for use   */
70
  HAL_WWDG_STATE_BUSY      = 0x02,  /*!< WWDG internal process is ongoing     */
71
  HAL_WWDG_STATE_TIMEOUT   = 0x03,  /*!< WWDG timeout state                   */
72
  HAL_WWDG_STATE_ERROR     = 0x04   /*!< WWDG error state                     */
73
}HAL_WWDG_StateTypeDef;
74
 
75
/**
76
  * @brief  WWDG Init structure definition  
77
  */
78
typedef struct
79
{
80
  uint32_t Prescaler;  /*!< Specifies the prescaler value of the WWDG.
81
                            This parameter can be a value of @ref WWDG_Prescaler */
82
 
83
  uint32_t Window;     /*!< Specifies the WWDG window value to be compared to the downcounter.
84
                            This parameter must be a number lower than Max_Data = 0x80 */
85
 
86
  uint32_t Counter;    /*!< Specifies the WWDG free-running downcounter value.
87
                            This parameter must be a number between Min_Data = 0x40 and Max_Data = 0x7F */
88
 
89
}WWDG_InitTypeDef;
90
 
91
/**
92
  * @brief  WWDG handle Structure definition  
93
  */
94
typedef struct
95
{
96
  WWDG_TypeDef                 *Instance;  /*!< Register base address    */
97
 
98
  WWDG_InitTypeDef             Init;       /*!< WWDG required parameters */
99
 
100
  HAL_LockTypeDef              Lock;       /*!< WWDG locking object      */
101
 
102
  __IO HAL_WWDG_StateTypeDef   State;      /*!< WWDG communication state */
103
 
104
}WWDG_HandleTypeDef;
105
 
106
/**
107
  * @}
108
  */
109
 
110
/* Exported constants --------------------------------------------------------*/
111
 
112
/** @defgroup WWDG_Exported_Constants WWDG Exported Constants
113
  * @{
114
  */
115
 
116
/** @defgroup WWDG_Interrupt_definition WWDG Interrupt definition
117
  * @{
118
  */
119
#define WWDG_IT_EWI                       WWDG_CFR_EWI  /*!< Early wakeup interrupt */
120
/**
121
  * @}
122
  */
123
 
124
/** @defgroup WWDG_Flag_definition WWDG Flag definition
125
  * @brief WWDG Flag definition
126
  * @{
127
  */
128
#define WWDG_FLAG_EWIF                    WWDG_SR_EWIF  /*!< Early wakeup interrupt flag */
129
/**
130
  * @}
131
  */
132
 
133
/** @defgroup WWDG_Prescaler WWDG Prescaler
134
  * @{
135
  */
136
#define WWDG_PRESCALER_1   ((uint32_t)0x00000000)  /*!< WWDG counter clock = (PCLK1/4096)/1 */
137
#define WWDG_PRESCALER_2                  WWDG_CFR_WDGTB0  /*!< WWDG counter clock = (PCLK1/4096)/2 */
138
#define WWDG_PRESCALER_4                  WWDG_CFR_WDGTB1  /*!< WWDG counter clock = (PCLK1/4096)/4 */
139
#define WWDG_PRESCALER_8                  WWDG_CFR_WDGTB  /*!< WWDG counter clock = (PCLK1/4096)/8 */
140
 
141
/**
142
  * @}
143
  */
144
 
145
/**
146
  * @}
147
  */
148
 
149
/* Private macros ------------------------------------------------------------*/
150
 
151
/** @defgroup WWDG_Private_Macros WWDG Private Macros
152
  * @{
153
  */
154
#define IS_WWDG_PRESCALER(__PRESCALER__) (((__PRESCALER__) == WWDG_PRESCALER_1) || \
155
                                          ((__PRESCALER__) == WWDG_PRESCALER_2) || \
156
                                          ((__PRESCALER__) == WWDG_PRESCALER_4) || \
157
                                          ((__PRESCALER__) == WWDG_PRESCALER_8))
158
 
159
#define IS_WWDG_WINDOW(__WINDOW__) ((__WINDOW__) <= 0x7F)
160
 
161
 
162
#define IS_WWDG_COUNTER(__COUNTER__) (((__COUNTER__) >= 0x40) && ((__COUNTER__) <= 0x7F))
163
/**
164
  * @}
165
  */
166
 
167
 
168
/* Exported macros ------------------------------------------------------------*/
169
 
170
/** @defgroup WWDG_Exported_Macros WWDG Exported Macros
171
  * @{
172
  */
173
 
174
/** @brief Reset WWDG handle state
175
  * @param  __HANDLE__: WWDG handle
176
  * @retval None
177
  */
178
#define __HAL_WWDG_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_WWDG_STATE_RESET)
179
 
180
/**
181
  * @brief  Enables the WWDG peripheral.
182
  * @param  __HANDLE__: WWDG handle
183
  * @retval None
184
  */
185
#define __HAL_WWDG_ENABLE(__HANDLE__)             SET_BIT((__HANDLE__)->Instance->CR, WWDG_CR_WDGA)
186
 
187
/**
188
  * @brief  Disables the WWDG peripheral.
189
  * @param  __HANDLE__: WWDG handle
190
  * @note   WARNING: This is a dummy macro for HAL code alignment.
191
  *         Once enable, WWDG Peripheral cannot be disabled except by a system reset.
192
  * @retval None
193
  */
194
#define __HAL_WWDG_DISABLE(__HANDLE__)                      /* dummy  macro */
195
 
196
/**
197
  * @brief  Enables the WWDG early wakeup interrupt.
198
  * @param  __HANDLE__: WWDG handle
199
  * @param  __INTERRUPT__: specifies the interrupt to enable.
200
  *         This parameter can be one of the following values:
201
  *            @arg WWDG_IT_EWI: Early wakeup interrupt
202
  * @note   Once enabled this interrupt cannot be disabled except by a system reset.
203
  * @retval None
204
  */
205
#define __HAL_WWDG_ENABLE_IT(__HANDLE__, __INTERRUPT__)     SET_BIT((__HANDLE__)->Instance->CFR, (__INTERRUPT__))
206
 
207
/**
208
  * @brief  Disables the WWDG early wakeup interrupt.
209
  * @param  __HANDLE__: WWDG handle
210
  * @param  __INTERRUPT__: specifies the interrupt to disable.
211
  *         This parameter can be one of the following values:
212
  *            @arg WWDG_IT_EWI: Early wakeup interrupt
213
  * @note   WARNING: This is a dummy macro for HAL code alignment.
214
  *         Once enabled this interrupt cannot be disabled except by a system reset.
215
  * @retval None
216
  */
217
#define __HAL_WWDG_DISABLE_IT(__HANDLE__, __INTERRUPT__)                   /* dummy  macro */
218
 
219
/**
220
  * @brief  Gets the selected WWDG's it status.
221
  * @param  __HANDLE__: WWDG handle
222
  * @param  __INTERRUPT__: specifies the it to check.
223
  *        This parameter can be one of the following values:
224
  *            @arg WWDG_FLAG_EWIF: Early wakeup interrupt IT
225
  * @retval The new state of WWDG_FLAG (SET or RESET).
226
  */
227
#define __HAL_WWDG_GET_IT(__HANDLE__, __INTERRUPT__)       __HAL_WWDG_GET_FLAG((__HANDLE__),(__INTERRUPT__))
228
 
229
/** @brief  Clear the WWDG's interrupt pending bits
230
  *         bits to clear the selected interrupt pending bits.
231
  * @param  __HANDLE__: WWDG handle
232
  * @param  __INTERRUPT__: specifies the interrupt pending bit to clear.
233
  *         This parameter can be one of the following values:
234
  *            @arg WWDG_FLAG_EWIF: Early wakeup interrupt flag
235
  */
236
#define __HAL_WWDG_CLEAR_IT(__HANDLE__, __INTERRUPT__)     __HAL_WWDG_CLEAR_FLAG((__HANDLE__), (__INTERRUPT__))
237
 
238
/**
239
  * @brief  Gets the selected WWDG's flag status.
240
  * @param  __HANDLE__: WWDG handle
241
  * @param  __FLAG__: specifies the flag to check.
242
  *         This parameter can be one of the following values:
243
  *            @arg WWDG_FLAG_EWIF: Early wakeup interrupt flag
244
  * @retval The new state of WWDG_FLAG (SET or RESET).
245
  */
246
#define __HAL_WWDG_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->SR & (__FLAG__)) == (__FLAG__))
247
 
248
/**
249
  * @brief  Clears the WWDG's pending flags.
250
  * @param  __HANDLE__: WWDG handle
251
  * @param  __FLAG__: specifies the flag to clear.
252
  *         This parameter can be one of the following values:
253
  *            @arg WWDG_FLAG_EWIF: Early wakeup interrupt flag
254
  * @retval None
255
  */
256
#define __HAL_WWDG_CLEAR_FLAG(__HANDLE__, __FLAG__)         ((__HANDLE__)->Instance->SR = ~(__FLAG__))
257
 
258
/** @brief  Checks if the specified WWDG interrupt source is enabled or disabled.
259
  * @param  __HANDLE__: WWDG Handle.
260
  * @param  __INTERRUPT__: specifies the WWDG interrupt source to check.
261
  *          This parameter can be one of the following values:
262
  *            @arg WWDG_IT_EWI: Early Wakeup Interrupt
263
  * @retval state of __INTERRUPT__ (TRUE or FALSE).
264
  */
265
#define __HAL_WWDG_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->CFR & (__INTERRUPT__)) == (__INTERRUPT__))
266
 
267
/**
268
  * @}
269
  */
270
 
271
/* Exported functions --------------------------------------------------------*/
272
 
273
/** @addtogroup WWDG_Exported_Functions
274
  * @{
275
  */
276
 
277
/** @addtogroup WWDG_Exported_Functions_Group1
278
  * @{
279
  */
280
/* Initialization/de-initialization functions  **********************************/
281
HAL_StatusTypeDef HAL_WWDG_Init(WWDG_HandleTypeDef *hwwdg);
282
HAL_StatusTypeDef HAL_WWDG_DeInit(WWDG_HandleTypeDef *hwwdg);
283
void HAL_WWDG_MspInit(WWDG_HandleTypeDef *hwwdg);
284
void HAL_WWDG_MspDeInit(WWDG_HandleTypeDef *hwwdg);
285
void HAL_WWDG_WakeupCallback(WWDG_HandleTypeDef* hwwdg);
286
 
287
/**
288
  * @}
289
  */
290
 
291
/** @addtogroup WWDG_Exported_Functions_Group2
292
  * @{
293
  */
294
/* I/O operation functions ******************************************************/
295
HAL_StatusTypeDef HAL_WWDG_Start(WWDG_HandleTypeDef *hwwdg);
296
HAL_StatusTypeDef HAL_WWDG_Start_IT(WWDG_HandleTypeDef *hwwdg);
297
HAL_StatusTypeDef HAL_WWDG_Refresh(WWDG_HandleTypeDef *hwwdg, uint32_t Counter);
298
void HAL_WWDG_IRQHandler(WWDG_HandleTypeDef *hwwdg);
299
 
300
/**
301
  * @}
302
  */
303
 
304
/** @addtogroup WWDG_Exported_Functions_Group3
305
  * @{
306
  */
307
/* Peripheral State functions  **************************************************/
308
HAL_WWDG_StateTypeDef HAL_WWDG_GetState(WWDG_HandleTypeDef *hwwdg);
309
 
310
/**
311
  * @}
312
  */
313
 
314
/**
315
  * @}
316
  */
317
 
318
/**
319
  * @}
320
  */
321
 
322
/**
323
  * @}
324
  */
325
 
326
#ifdef __cplusplus
327
}
328
#endif
329
 
330
#endif /* __STM32F1xx_HAL_WWDG_H */
331
 
332
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/