研究官方例程研究了半天,只有软件启动方式,而且HC32的看门狗和STM32的区别挺大,HC32有个允许刷新范围,可以理解成只有在特定计数范围内才允许喂狗,有点像窗口看门狗!
在网上找到硬件启动的方式,用到了HC32的ICG模块(初始化配置):
简单说这玩意可以保存并自动配置SWDT(保存在FLASH内),硬件启动SWDT只需修改几个宏参数:
/**
* @defgroup ICG_SWDT_Preload_Configuration ICG SWDT Preload Configuration
* @{
*/
/* SWDT register config */
#define ICG_RB_SWDT_AUTS (ICG_SWDT_RST_START) /*硬件启动*/
#define ICG_RB_SWDT_ITS (ICG_SWDT_EXP_TYPE_RST) /*触发复位*/
#define ICG_RB_SWDT_PERI (ICG_SWDT_CNT_PERIOD256) /*计数周期*/
#define ICG_RB_SWDT_CKS (ICG_SWDT_CLK_DIV32) /*分频系数*/
#define ICG_RB_SWDT_WDPT (ICG_SWDT_RANGE_0TO100PCT) /*允许刷新窗口大小*/
#define ICG_RB_SWDT_SLTPOFF (ICG_SWDT_LPM_CNT_CONTINUE)/*睡眠/停止模式继续计数*/
定时时间 = 分频数 * 周期数 / 10000;(注:SWDT时钟源固定为内部10Khz)
此时,只需在规定时间内调用 SWDT_FeedDog() 即可。