source: S-port/trunk/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_iwdg.h

Last change on this file was 1, checked in by AlexLir, 3 years ago
File size: 6.8 KB
Line 
1/**
2 ******************************************************************************
3 * @file stm32f4xx_hal_iwdg.h
4 * @author MCD Application Team
5 * @brief Header file of IWDG HAL module.
6 ******************************************************************************
7 * @attention
8 *
9 * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
10 * All rights reserved.</center></h2>
11 *
12 * This software component is licensed by ST under BSD 3-Clause license,
13 * the "License"; You may not use this file except in compliance with the
14 * License. You may obtain a copy of the License at:
15 * opensource.org/licenses/BSD-3-Clause
16 *
17 ******************************************************************************
18 */
19
20/* Define to prevent recursive inclusion -------------------------------------*/
21#ifndef STM32F4xx_HAL_IWDG_H
22#define STM32F4xx_HAL_IWDG_H
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
28/* Includes ------------------------------------------------------------------*/
29#include "stm32f4xx_hal_def.h"
30
31/** @addtogroup STM32F4xx_HAL_Driver
32 * @{
33 */
34
35/** @defgroup IWDG IWDG
36 * @{
37 */
38
39/* Exported types ------------------------------------------------------------*/
40/** @defgroup IWDG_Exported_Types IWDG Exported Types
41 * @{
42 */
43
44/**
45 * @brief IWDG Init structure definition
46 */
47typedef struct
48{
49 uint32_t Prescaler; /*!< Select the prescaler of the IWDG.
50 This parameter can be a value of @ref IWDG_Prescaler */
51
52 uint32_t Reload; /*!< Specifies the IWDG down-counter reload value.
53 This parameter must be a number between Min_Data = 0 and Max_Data = 0x0FFF */
54
55} IWDG_InitTypeDef;
56
57/**
58 * @brief IWDG Handle Structure definition
59 */
60typedef struct
61{
62 IWDG_TypeDef *Instance; /*!< Register base address */
63
64 IWDG_InitTypeDef Init; /*!< IWDG required parameters */
65} IWDG_HandleTypeDef;
66
67
68/**
69 * @}
70 */
71
72/* Exported constants --------------------------------------------------------*/
73/** @defgroup IWDG_Exported_Constants IWDG Exported Constants
74 * @{
75 */
76
77/** @defgroup IWDG_Prescaler IWDG Prescaler
78 * @{
79 */
80#define IWDG_PRESCALER_4 0x00000000u /*!< IWDG prescaler set to 4 */
81#define IWDG_PRESCALER_8 IWDG_PR_PR_0 /*!< IWDG prescaler set to 8 */
82#define IWDG_PRESCALER_16 IWDG_PR_PR_1 /*!< IWDG prescaler set to 16 */
83#define IWDG_PRESCALER_32 (IWDG_PR_PR_1 | IWDG_PR_PR_0) /*!< IWDG prescaler set to 32 */
84#define IWDG_PRESCALER_64 IWDG_PR_PR_2 /*!< IWDG prescaler set to 64 */
85#define IWDG_PRESCALER_128 (IWDG_PR_PR_2 | IWDG_PR_PR_0) /*!< IWDG prescaler set to 128 */
86#define IWDG_PRESCALER_256 (IWDG_PR_PR_2 | IWDG_PR_PR_1) /*!< IWDG prescaler set to 256 */
87/**
88 * @}
89 */
90
91/**
92 * @}
93 */
94
95/* Exported macros -----------------------------------------------------------*/
96/** @defgroup IWDG_Exported_Macros IWDG Exported Macros
97 * @{
98 */
99
100/**
101 * @brief Enable the IWDG peripheral.
102 * @param __HANDLE__ IWDG handle
103 * @retval None
104 */
105#define __HAL_IWDG_START(__HANDLE__) WRITE_REG((__HANDLE__)->Instance->KR, IWDG_KEY_ENABLE)
106
107/**
108 * @brief Reload IWDG counter with value defined in the reload register
109 * (write access to IWDG_PR and IWDG_RLR registers disabled).
110 * @param __HANDLE__ IWDG handle
111 * @retval None
112 */
113#define __HAL_IWDG_RELOAD_COUNTER(__HANDLE__) WRITE_REG((__HANDLE__)->Instance->KR, IWDG_KEY_RELOAD)
114
115/**
116 * @}
117 */
118
119/* Exported functions --------------------------------------------------------*/
120/** @defgroup IWDG_Exported_Functions IWDG Exported Functions
121 * @{
122 */
123
124/** @defgroup IWDG_Exported_Functions_Group1 Initialization and Start functions
125 * @{
126 */
127/* Initialization/Start functions ********************************************/
128HAL_StatusTypeDef HAL_IWDG_Init(IWDG_HandleTypeDef *hiwdg);
129/**
130 * @}
131 */
132
133/** @defgroup IWDG_Exported_Functions_Group2 IO operation functions
134 * @{
135 */
136/* I/O operation functions ****************************************************/
137HAL_StatusTypeDef HAL_IWDG_Refresh(IWDG_HandleTypeDef *hiwdg);
138/**
139 * @}
140 */
141
142/**
143 * @}
144 */
145
146/* Private constants ---------------------------------------------------------*/
147/** @defgroup IWDG_Private_Constants IWDG Private Constants
148 * @{
149 */
150
151/**
152 * @brief IWDG Key Register BitMask
153 */
154#define IWDG_KEY_RELOAD 0x0000AAAAu /*!< IWDG Reload Counter Enable */
155#define IWDG_KEY_ENABLE 0x0000CCCCu /*!< IWDG Peripheral Enable */
156#define IWDG_KEY_WRITE_ACCESS_ENABLE 0x00005555u /*!< IWDG KR Write Access Enable */
157#define IWDG_KEY_WRITE_ACCESS_DISABLE 0x00000000u /*!< IWDG KR Write Access Disable */
158
159/**
160 * @}
161 */
162
163/* Private macros ------------------------------------------------------------*/
164/** @defgroup IWDG_Private_Macros IWDG Private Macros
165 * @{
166 */
167
168/**
169 * @brief Enable write access to IWDG_PR and IWDG_RLR registers.
170 * @param __HANDLE__ IWDG handle
171 * @retval None
172 */
173#define IWDG_ENABLE_WRITE_ACCESS(__HANDLE__) WRITE_REG((__HANDLE__)->Instance->KR, IWDG_KEY_WRITE_ACCESS_ENABLE)
174
175/**
176 * @brief Disable write access to IWDG_PR and IWDG_RLR registers.
177 * @param __HANDLE__ IWDG handle
178 * @retval None
179 */
180#define IWDG_DISABLE_WRITE_ACCESS(__HANDLE__) WRITE_REG((__HANDLE__)->Instance->KR, IWDG_KEY_WRITE_ACCESS_DISABLE)
181
182/**
183 * @brief Check IWDG prescaler value.
184 * @param __PRESCALER__ IWDG prescaler value
185 * @retval None
186 */
187#define IS_IWDG_PRESCALER(__PRESCALER__) (((__PRESCALER__) == IWDG_PRESCALER_4) || \
188 ((__PRESCALER__) == IWDG_PRESCALER_8) || \
189 ((__PRESCALER__) == IWDG_PRESCALER_16) || \
190 ((__PRESCALER__) == IWDG_PRESCALER_32) || \
191 ((__PRESCALER__) == IWDG_PRESCALER_64) || \
192 ((__PRESCALER__) == IWDG_PRESCALER_128)|| \
193 ((__PRESCALER__) == IWDG_PRESCALER_256))
194
195/**
196 * @brief Check IWDG reload value.
197 * @param __RELOAD__ IWDG reload value
198 * @retval None
199 */
200#define IS_IWDG_RELOAD(__RELOAD__) ((__RELOAD__) <= IWDG_RLR_RL)
201
202
203
204/**
205 * @}
206 */
207
208/**
209 * @}
210 */
211
212/**
213 * @}
214 */
215
216
217#ifdef __cplusplus
218}
219#endif
220
221#endif /* STM32F4xx_HAL_IWDG_H */
222
223/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
Note: See TracBrowser for help on using the repository browser.