1 配置IWDT 为独立看门狗
步骤1:设置SYSCTRL_APBEN1.IWDT 为1,使能IWDT 的配置时钟;
步骤2:向IWDT_KR 寄存器写入0xCCCC,启动IWDT;
注意:
需要启动IWDT 后,才可对相关寄存器进行修改。
步骤3:向IWDT_KR 寄存器写入0x5555,解除IWDT 寄存器锁定功能;
步骤4:配置IWDT_CR,配置看门狗计数时钟与RC10K 振荡器的预分频值、溢出后动作、深度休眠模式下是否
自动暂停;
步骤5:配置IWDT_ARR,配置看门狗的溢出周期;
步骤6:等待IWDT_SR.ARRF 和IWDT_SR.CRF 变为0,等待重载值和CR 寄存器更新完成;
步骤7:向IWDT_KR 寄存器写入0xAAAA,加载ARR 到IWDT 计数器。
2 配置IWDT 为窗口看门狗
步骤1:设置SYSCTRL_APBEN1.IWDT 为1,使能IWDT 的配置时钟;
步骤2:向IWDT_KR 寄存器写入0xCCCC,启动IWDT;
注意:
需要启动IWDT 后,才可对相关寄存器进行修改。
步骤3:向IWDT_KR 寄存器写入0x5555,解除IWDT 寄存器锁定功能;
步骤4:配置IWDT_CR,配置看门狗计数时钟与RC10K 振荡器的预分频值、溢出后动作、深度休眠模式下是否
自动暂停;
步骤5:配置IWDT_ARR,配置看门狗的重载值;
步骤6:配置IWDT_WINR,配置窗口大小,注意IWDT_WINR 必须小于IWDT_ARR 重载值;
步骤7:等待IWDT_SR.ARRF、IWDT_SR.WINRF 和IWDT_SR.CRF 变为0,等待重载值、窗口寄存器和CR 寄存
器更新完成;
步骤8:向IWDT_KR 寄存器写入0xAAAA,加载ARR 到IWDT 计数器。
3 刷新IWDT(喂狗操作)
步骤1:向IWDT_KR 寄存器写入0xAAAA,加载ARR 到计数器;
步骤2:等待IWDT_SR.RELOAD 变为0,等待重载操作完成。
|