|
STM32G474xx HAL用户手册
|
00001 /** 00002 ****************************************************************************** 00003 * @file stm32g4xx_hal_iwdg.h 00004 * @author MCD Application Team 00005 * @brief Header file of IWDG HAL module. 00006 ****************************************************************************** 00007 * @attention 00008 00009 * Copyright (c) 2019 STMicroelectronics. 00010 * All rights reserved. 00011 00012 * This software is licensed under terms that can be found in the LICENSE file 00013 * in the root directory of this software component. 00014 * If no LICENSE file comes with this software, it is provided AS-IS. 00015 00016 ****************************************************************************** 00017 */ 00018 00019 /* Define to prevent recursive inclusion -------------------------------------*/ 00020 #ifndef STM32G4xx_HAL_IWDG_H 00021 #define STM32G4xx_HAL_IWDG_H 00022 00023 #ifdef __cplusplus 00024 extern "C" { 00025 #endif 00026 00027 /* Includes ------------------------------------------------------------------*/ 00028 #include "stm32g4xx_hal_def.h" 00029 00030 /** @addtogroup STM32G4xx_HAL_Driver 00031 * @{ 00032 */ 00033 00034 /** @defgroup IWDG IWDG 00035 * @{ 00036 */ 00037 00038 /* Exported types ------------------------------------------------------------*/ 00039 /** @defgroup IWDG_Exported_Types IWDG导出类型 00040 * @{ 00041 */ 00042 00043 /** 00044 * @brief IWDG初始化结构体定义 00045 */ 00046 typedef struct 00047 { 00048 uint32_t Prescaler; /*!< 选择IWDG的预分频器。 00049 此参数可以是@ref IWDG_Prescaler的值 */ 00050 00051 uint32_t Reload; /*!< 指定IWDG向下计数器重装值。 00052 此参数必须是介于Min_Data = 0和Max_Data = 0x0FFF之间的数字 */ 00053 00054 uint32_t Window; /*!< 指定要与向下计数器比较的窗口值。 00055 此参数必须是介于Min_Data = 0和Max_Data = 0x0FFF之间的数字 */ 00056 00057 } IWDG_InitTypeDef; 00058 00059 /** 00060 * @brief IWDG句柄结构体定义 00061 */ 00062 typedef struct 00063 { 00064 IWDG_TypeDef *Instance; /*!< 寄存器基地址 */ 00065 00066 IWDG_InitTypeDef Init; /*!< IWDG所需参数 */ 00067 } IWDG_HandleTypeDef; 00068 00069 /** 00070 * @} 00071 */ 00072 00073 /* Exported constants --------------------------------------------------------*/ 00074 /** @defgroup IWDG_Exported_Constants IWDG导出常量 00075 * @{ 00076 */ 00077 00078 /** @defgroup IWDG_Prescaler IWDG预分频器 00079 * @{ 00080 */ 00081 00082 #define IWDG_PRESCALER_4 0x00000000u /*!< IWDG预分频器设置为4 */ 00083 #define IWDG_PRESCALER_8 IWDG_PR_PR_0 /*!< IWDG预分频器设置为8 */ 00084 #define IWDG_PRESCALER_16 IWDG_PR_PR_1 /*!< IWDG预分频器设置为16 */ 00085 #define IWDG_PRESCALER_32 (IWDG_PR_PR_1 | IWDG_PR_PR_0) /*!< IWDG预分频器设置为32 */ 00086 #define IWDG_PRESCALER_64 IWDG_PR_PR_2 /*!< IWDG预分频器设置为64 */ 00087 #define IWDG_PRESCALER_128 (IWDG_PR_PR_2 | IWDG_PR_PR_0) /*!< IWDG预分频器设置为128 */ 00088 #define IWDG_PRESCALER_256 (IWDG_PR_PR_2 | IWDG_PR_PR_1) /*!< IWDG预分频器设置为256 */ 00089 /** 00090 * @} 00091 */ 00092 00093 /** @defgroup IWDG_Window_option IWDG窗口选项 00094 * @{ 00095 */ 00096 #define IWDG_WINDOW_DISABLE IWDG_WINR_WIN 00097 /** 00098 * @} 00099 */ 00100 00101 /** 00102 * @} 00103 */ 00104 00105 /* Exported macros -----------------------------------------------------------*/ 00106 /** @defgroup IWDG_Exported_Macros IWDG导出宏 00107 * @{ 00108 */ 00109 00110 /** 00111 * @brief 使能IWDG外设。 00112 * @param __HANDLE__ IWDG句柄 00113 * @retval None 00114 */ 00115 #define __HAL_IWDG_START(__HANDLE__) WRITE_REG((__HANDLE__)->Instance->KR, IWDG_KEY_ENABLE) 00116 00117 /** 00118 * @brief 使用重装寄存器中定义的值重装IWDG计数器 00119 (禁止对IWDG_PR、IWDG_RLR和IWDG_WINR寄存器的写访问)。 00120 * @param __HANDLE__ IWDG句柄 00121 * @retval None 00122 */ 00123 #define __HAL_IWDG_RELOAD_COUNTER(__HANDLE__) WRITE_REG((__HANDLE__)->Instance->KR, IWDG_KEY_RELOAD) 00124 00125 /** 00126 * @} 00127 */ 00128 00129 /* Exported functions --------------------------------------------------------*/ 00130 /** @defgroup IWDG_Exported_Functions IWDG导出函数 00131 * @{ 00132 */ 00133 00134 /** @defgroup IWDG_Exported_Functions_Group1 初始化和启动函数 00135 * @{ 00136 */ 00137 /* Initialization/Start functions ********************************************/ 00138 HAL_StatusTypeDef HAL_IWDG_Init(IWDG_HandleTypeDef *hiwdg); 00139 /** 00140 * @} 00141 */ 00142 00143 /** @defgroup IWDG_Exported_Functions_Group2 IO操作函数 00144 * @{ 00145 */ 00146 /* I/O operation functions ****************************************************/ 00147 HAL_StatusTypeDef HAL_IWDG_Refresh(IWDG_HandleTypeDef *hiwdg); 00148 /** 00149 * @} 00150 */ 00151 00152 /** 00153 * @} 00154 */ 00155 00156 /* Private constants ---------------------------------------------------------*/ 00157 /** @defgroup IWDG_Private_Constants IWDG私有常量 00158 * @{ 00159 */ 00160 00161 /** 00162 * @brief IWDG键寄存器位掩码 00163 */ 00164 #define IWDG_KEY_RELOAD 0x0000AAAAu /*!< IWDG重装计数器使能 */ 00165 #define IWDG_KEY_ENABLE 0x0000CCCCu /*!< IWDG外设使能 */ 00166 #define IWDG_KEY_WRITE_ACCESS_ENABLE 0x00005555u /*!< IWDG KR写访问使能 */ 00167 #define IWDG_KEY_WRITE_ACCESS_DISABLE 0x00000000u /*!< IWDG KR写访问禁止 */ 00168 00169 /** 00170 * @} 00171 */ 00172 00173 /* Private macros ------------------------------------------------------------*/ 00174 /** @defgroup IWDG_Private_Macros IWDG私有宏 00175 * @{ 00176 */ 00177 00178 /** 00179 * @brief 启用对IWDG_PR、IWDG_RLR和IWDG_WINR寄存器的写访问。 00180 * @param __HANDLE__ IWDG句柄 00181 * @retval None 00182 */ 00183 #define IWDG_ENABLE_WRITE_ACCESS(__HANDLE__) WRITE_REG((__HANDLE__)->Instance->KR, IWDG_KEY_WRITE_ACCESS_ENABLE) 00184 00185 /** 00186 * @brief 禁用对IWDG_PR、IWDG_RLR和IWDG_WINR寄存器的写访问。 00187 * @param __HANDLE__ IWDG句柄 00188 * @retval None 00189 */ 00190 #define IWDG_DISABLE_WRITE_ACCESS(__HANDLE__) WRITE_REG((__HANDLE__)->Instance->KR, IWDG_KEY_WRITE_ACCESS_DISABLE) 00191 00192 /** 00193 * @brief 检查IWDG预分频器值。 00194 * @param __PR