Subversion Repositories dashGPS

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 mjames 1
/**
2
  ******************************************************************************
3
  * @file    stm32f1xx_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 STM32F1xx_HAL_IWDG_H
22
#define STM32F1xx_HAL_IWDG_H
23
 
24
#ifdef __cplusplus
25
extern "C" {
26
#endif
27
 
28
/* Includes ------------------------------------------------------------------*/
29
#include "stm32f1xx_hal_def.h"
30
 
31
/** @addtogroup STM32F1xx_HAL_Driver
32
  * @{
33
  */
34
 
35
/** @addtogroup 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
  */
47
typedef 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
  */
60
typedef struct
61
{
62
  IWDG_TypeDef                 *Instance;  /*!< Register base address    */
63
 
64
  IWDG_InitTypeDef             Init;       /*!< IWDG required parameters */
65
 
66
} IWDG_HandleTypeDef;
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
 
96
/* Exported macros -----------------------------------------------------------*/
97
/** @defgroup IWDG_Exported_Macros IWDG Exported Macros
98
  * @{
99
  */
100
 
101
/**
102
  * @brief  Enable the IWDG peripheral.
103
  * @param  __HANDLE__  IWDG handle
104
  * @retval None
105
  */
106
#define __HAL_IWDG_START(__HANDLE__)                WRITE_REG((__HANDLE__)->Instance->KR, IWDG_KEY_ENABLE)
107
 
108
/**
109
  * @brief  Reload IWDG counter with value defined in the reload register
110
  *         (write access to IWDG_PR & IWDG_RLR registers disabled).
111
  * @param  __HANDLE__  IWDG handle
112
  * @retval None
113
  */
114
#define __HAL_IWDG_RELOAD_COUNTER(__HANDLE__)       WRITE_REG((__HANDLE__)->Instance->KR, IWDG_KEY_RELOAD)
115
 
116
/**
117
  * @}
118
  */
119
 
120
/* Exported functions --------------------------------------------------------*/
121
/** @defgroup IWDG_Exported_Functions  IWDG Exported Functions
122
  * @{
123
  */
124
 
125
/** @defgroup IWDG_Exported_Functions_Group1 Initialization and Start functions
126
  * @{
127
  */
128
/* Initialization/Start functions  ********************************************/
129
HAL_StatusTypeDef HAL_IWDG_Init(IWDG_HandleTypeDef *hiwdg);
130
/**
131
  * @}
132
  */
133
 
134
/** @defgroup IWDG_Exported_Functions_Group2 IO operation functions
135
  * @{
136
  */
137
/* I/O operation functions ****************************************************/
138
HAL_StatusTypeDef HAL_IWDG_Refresh(IWDG_HandleTypeDef *hiwdg);
139
/**
140
  * @}
141
  */
142
 
143
/**
144
  * @}
145
  */
146
 
147
/* Private constants ---------------------------------------------------------*/
148
/** @defgroup IWDG_Private_Constants IWDG Private Constants
149
  * @{
150
  */
151
 
152
/**
153
  * @brief  IWDG Key Register BitMask
154
  */
155
#define IWDG_KEY_RELOAD                 0x0000AAAAU  /*!< IWDG Reload Counter Enable   */
156
#define IWDG_KEY_ENABLE                 0x0000CCCCU  /*!< IWDG Peripheral Enable       */
157
#define IWDG_KEY_WRITE_ACCESS_ENABLE    0x00005555U  /*!< IWDG KR Write Access Enable  */
158
#define IWDG_KEY_WRITE_ACCESS_DISABLE   0x00000000U  /*!< IWDG KR Write Access Disable */
159
 
160
/**
161
  * @}
162
  */
163
 
164
/* Private macros ------------------------------------------------------------*/
165
/** @defgroup IWDG_Private_Macros IWDG Private Macros
166
  * @{
167
  */
168
 
169
/**
170
  * @brief  Enable write access to IWDG_PR and IWDG_RLR registers.
171
  * @param  __HANDLE__  IWDG handle
172
  * @retval None
173
  */
174
#define IWDG_ENABLE_WRITE_ACCESS(__HANDLE__)  WRITE_REG((__HANDLE__)->Instance->KR, IWDG_KEY_WRITE_ACCESS_ENABLE)
175
 
176
/**
177
  * @brief  Disable write access to IWDG_PR and IWDG_RLR registers.
178
  * @param  __HANDLE__  IWDG handle
179
  * @retval None
180
  */
181
#define IWDG_DISABLE_WRITE_ACCESS(__HANDLE__) WRITE_REG((__HANDLE__)->Instance->KR, IWDG_KEY_WRITE_ACCESS_DISABLE)
182
 
183
/**
184
  * @brief  Check IWDG prescaler value.
185
  * @param  __PRESCALER__  IWDG prescaler value
186
  * @retval None
187
  */
188
#define IS_IWDG_PRESCALER(__PRESCALER__)      (((__PRESCALER__) == IWDG_PRESCALER_4)  || \
189
                                               ((__PRESCALER__) == IWDG_PRESCALER_8)  || \
190
                                               ((__PRESCALER__) == IWDG_PRESCALER_16) || \
191
                                               ((__PRESCALER__) == IWDG_PRESCALER_32) || \
192
                                               ((__PRESCALER__) == IWDG_PRESCALER_64) || \
193
                                               ((__PRESCALER__) == IWDG_PRESCALER_128)|| \
194
                                               ((__PRESCALER__) == IWDG_PRESCALER_256))
195
 
196
/**
197
  * @brief  Check IWDG reload value.
198
  * @param  __RELOAD__  IWDG reload value
199
  * @retval None
200
  */
201
#define IS_IWDG_RELOAD(__RELOAD__)            ((__RELOAD__) <= IWDG_RLR_RL)
202
 
203
/**
204
  * @}
205
  */
206
 
207
/**
208
  * @}
209
  */
210
 
211
/**
212
  * @}
213
  */
214
 
215
 
216
#ifdef __cplusplus
217
}
218
#endif
219
 
220
#endif /* STM32F1xx_HAL_IWDG_H */
221
 
222
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/