Wdg模块用户手册
大约 8 分钟约 2309 字2025/12/26
Wdg模块用户手册
目录
1. 简介
本模块提供了对 WDG (Watchdog) 的抽象接口,支持独立看门狗 (IWDT) 和窗口看门狗 (WWDT) 的配置与控制。
主要功能包括:
- 初始化与反初始化: 通过
HLI_Wdg_Init和HLI_Wdg_DeInit对看门狗模块进行配置和资源释放。 - 使能与禁止: 通过
HLI_Wdg_Enable和HLI_Wdg_Disable控制看门狗的启动与停止。 - 喂狗: 提供
HLI_Wdg_FeedDog函数刷新看门狗计数器,防止系统复位。 - 中断处理: 支持窗口看门狗中断配置,提供中断清除接口
HLI_Wdg_WwdgOverIntrClear和回调机制。
1.1 支持的设备
当前软件适用于以下芯片:
- KF32A158xxxSF
1.2 名词及缩写
| 缩写 | 解释 |
|---|---|
| MCU | 微控制器 |
| IWDT | 独立看门狗 |
| WWDT | 窗口看门狗 |
| ISR | 中断服务例程 |
2. 文件结构
| 文件名称 | 描述 |
|---|---|
kf32axxx_hli_wdg.c | 此文件包含Wdg驱动程序的通用功能 |
kf32axxx_hli_wdg.h | 此头文件输出Wdg驱动程序的宏、类型定义和函数原型 |
kf32axxx_hli_wdg_cfg.h | 此头文件输出Wdg开关类的宏 |
kf32axxx_hli_wdg_Lcfg.h | 此头文件输出Wdg驱动程序的配置项声明 |
kf32axxx_hli_wdg_Lcfg.c | 此头文件输出Wdg驱动程序的配置项定义 |
__irq_wdg.c | 此头文件包含Wdg驱动程序的中断实现 |
3. 数据结构
3.1 数据类型
3.1.1 宏定义
无。
3.1.2 枚举
看门狗类型 (HLI_Wdg_ModuleType)
枚举值 解释 HLI_IWDG独立看门狗 HLI_WWDG窗口看门狗 看门狗使能状态 (HLI_Wdg_EnableType)
枚举值 解释 HLI_WDG_DISABLE看门狗失能 HLI_WDG_ENABLE看门狗使能 独立看门狗分频系数 (HLI_Wdg_IwdgPrescalerType)
枚举值 解释 HLI_IWDG_PRESCALER_32独立看门狗时钟32分频 HLI_IWDG_PRESCALER_64独立看门狗时钟64分频 HLI_IWDG_PRESCALER_128独立看门狗时钟128分频 HLI_IWDG_PRESCALER_256独立看门狗时钟256分频 HLI_IWDG_PRESCALER_512独立看门狗时钟512分频 HLI_IWDG_PRESCALER_1024独立看门狗时钟1024分频 HLI_IWDG_PRESCALER_2048独立看门狗时钟2048分频 HLI_IWDG_PRESCALER_4096独立看门狗时钟4096分频 HLI_IWDG_PRESCALER_8192独立看门狗时钟8192分频 HLI_IWDG_PRESCALER_16384独立看门狗时钟16384分频 HLI_IWDG_PRESCALER_32768独立看门狗时钟32768分频 HLI_IWDG_PRESCALER_65536独立看门狗时钟65536分频 窗口看门狗分频系数 (HLI_Wdg_WwdgPrescalerType)
枚举值 解释 HLI_WWDG_PRESCALER_1窗口看门狗时钟1分频 HLI_WWDG_PRESCALER_2窗口看门狗时钟2分频 HLI_WWDG_PRESCALER_4窗口看门狗时钟4分频 HLI_WWDG_PRESCALER_8窗口看门狗时钟8分频 HLI_WWDG_PRESCALER_16窗口看门狗时钟16分频 HLI_WWDG_PRESCALER_32窗口看门狗时钟32分频 HLI_WWDG_PRESCALER_64窗口看门狗时钟64分频 HLI_WWDG_PRESCALER_128窗口看门狗时钟128分频 HLI_WWDG_PRESCALER_256窗口看门狗时钟256分频 HLI_WWDG_PRESCALER_512窗口看门狗时钟512分频 HLI_WWDG_PRESCALER_1024窗口看门狗时钟1024分频 HLI_WWDG_PRESCALER_2048窗口看门狗时钟2048分频 HLI_WWDG_PRESCALER_4096窗口看门狗时钟4096分频 HLI_WWDG_PRESCALER_8192窗口看门狗时钟8192分频 HLI_WWDG_PRESCALER_16384窗口看门狗时钟16384分频 HLI_WWDG_PRESCALER_32768窗口看门狗时钟32768分频 HLI_WWDG_PRESCALER_65536窗口看门狗时钟65536分频 HLI_WWDG_PRESCALER_131072窗口看门狗时钟131072分频 HLI_WWDG_PRESCALER_262144窗口看门狗时钟262144分频
3.1.3 类型定义
无。
3.2 配置项说明
静态配置
静态配置在
kf32axxx_hli_wdg_cfg.h文件中通过宏定义完成。宏定义 解释 取值范围 WDG_FEATURE_INIT_STATUS_CHECK是否使能初始化状态检查。 true/false独立看门狗配置 (HLI_Wdg_IwdgConfigType)
成员 解释 取值范围 Prescaler独立看门狗预分频 可选范围参考 HLI_Wdg_IwdgPrescalerType。OverTime独立看门狗溢出时间值 1~0xFFE窗口看门狗配置 (HLI_Wdg_WwdgConfigType)
成员 解释 取值范围 Threshold窗口看门狗窗口阈值 0~0x3FIntrStatus窗口看门狗中断使能状态 可选范围参考 HLI_Wdg_EnableType。Prescaler窗口看门狗预分频系数 可选范围参考 HLI_Wdg_WwdgPrescalerType。TimeoutCallback窗口看门狗提前唤醒中断回调函数 HLI_Wdg_TimeoutFcnType类型的函数指针。顶层配置 (HLI_Wdg_ConfigType)
成员 解释 取值范围 IwdgInitStatus独立看门狗初始化使能状态 可选范围参考 HLI_Wdg_EnableType。WwdgInitStatus窗口看门狗初始化使能状态 可选范围参考 HLI_Wdg_EnableType。IwdgConfig独立看门狗配置指针 指向 HLI_Wdg_IwdgConfigType类型的结构体指针。WwdgConfig窗口看门狗配置指针 指向 HLI_Wdg_WwdgConfigType类型的结构体指针。
4. 驱动函数
4.1 函数接口
4.1.1 HLI_Wdg_Init
| Name | Description |
|---|---|
| 函数名称 | HLI_Wdg_Init |
| 语法 | void HLI_Wdg_Init(const HLI_Wdg_ConfigType *ConfigPtr) |
| 同步/异步 | 同步 |
| 重入性 | 不可重入 |
| 形参(输入) | ConfigPtr : 指向看门狗配置结构体的指针 |
| 返回值 | 无 |
| 描述 | 根据配置项内容对看门狗(IWDG和/或WWDG)进行初始化。 |
| 注意事项 | 1. 默认使用内部低频时钟(32KHz)。 2. ConfigPtr 不能为空。 |
4.1.2 HLI_Wdg_DeInit
| Name | Description |
|---|---|
| 函数名称 | HLI_Wdg_DeInit |
| 语法 | void HLI_Wdg_DeInit(void) |
| 同步/异步 | 同步 |
| 重入性 | 不可重入 |
| 返回值 | 无 |
| 描述 | 对看门狗进行反初始化。 |
| 注意事项 | 如果IWDG、WWDG均已初始化, 调用该接口会将IWDG和WWDG都反初始化。 |
4.1.3 HLI_Wdg_Enable
| Name | Description |
|---|---|
| 函数名称 | HLI_Wdg_Enable |
| 语法 | void HLI_Wdg_Enable(HLI_Wdg_ModuleType WdgType) |
| 同步/异步 | 同步 |
| 重入性 | 可重入(使能不同看门狗时) |
| 形参(输入) | WdgType : 看门狗类型 (HLI_IWDG / HLI_WWDG) |
| 返回值 | 无 |
| 描述 | 使能指定的看门狗。 |
| 注意事项 | 无 |
4.1.4 HLI_Wdg_Disable
| Name | Description |
|---|---|
| 函数名称 | HLI_Wdg_Disable |
| 语法 | void HLI_Wdg_Disable(HLI_Wdg_ModuleType WdgType) |
| 同步/异步 | 同步 |
| 重入性 | 可重入(失能不同看门狗时) |
| 形参(输入) | WdgType : 看门狗类型 (HLI_IWDG / HLI_WWDG) |
| 返回值 | 无 |
| 描述 | 失能指定的看门狗。 |
| 注意事项 | 无 |
4.1.5 HLI_Wdg_FeedDog
| Name | Description |
|---|---|
| 函数名称 | HLI_Wdg_FeedDog |
| 语法 | void HLI_Wdg_FeedDog(HLI_Wdg_ModuleType WdgType) |
| 同步/异步 | 同步 |
| 重入性 | 可重入(喂不同看门狗时) |
| 形参(输入) | WdgType : 看门狗类型 (HLI_IWDG / HLI_WWDG) |
| 返回值 | 无 |
| 描述 | 对看门狗进行喂狗(刷新计数器)。 |
| 注意事项 | 需在看门狗溢出时间(或窗口期)内调用,否则将导致复位。 |
4.1.6 HLI_Wdg_WwdgOverIntrClear
| Name | Description |
|---|---|
| 函数名称 | HLI_Wdg_WwdgOverIntrClear |
| 语法 | void HLI_Wdg_WwdgOverIntrClear(void) |
| 同步/异步 | 同步 |
| 重入性 | 不可重入 |
| 返回值 | 无 |
| 描述 | 清除窗口看门狗中断标志,并重置计数器。 |
| 注意事项 | 通常在窗口看门狗中断回调函数中调用以喂狗。 |
4.2 中断回调
4.2.1 HLI_Wwdg_InterruptHandler
| Name | Description |
|---|---|
| 函数名称 | HLI_Wwdg_InterruptHandler |
| 语法 | void HLI_Wwdg_InterruptHandler(void) |
| 形参(输入) | 无 |
| 返回值 | 无 |
| 描述 | 窗口看门狗中断服务函数。 |
| 注意事项 | 该函数内部会调用用户配置的 TimeoutCallback。 |
5. 使用示例
注
示例中使用的参数仅用作示例演示,应用时以实际为准。
1. 独立看门狗 (IWDT) 使用
此示例展示了如何初始化、使能并定期喂狗独立看门狗。
2. 窗口看门狗 (WWDT) 中断使用
此示例展示了如何使用窗口看门狗的中断功能来喂狗。
6. 限制与假设
- 时钟源: 仅支持使用内部低频时钟 (INTLF) 作为看门狗的时钟源。
- 运行时错误: 如果
WDG_FEATURE_INIT_STATUS_CHECK宏定义为true,则在未初始化时调用使能或喂狗函数会无效。
7. 变更记录
| 版本 | 时间 | 变更记录 |
|---|---|---|
| v1.0 | 2025-11-24 | 新增初版文档 |
