独立看门狗实验
独立看门狗:在主程序之外能够完全独立工作,用于监测单片机程序运行状态
独立看门狗的工作:在看门狗的关键字寄存器中写入0XCCCC,启用独立看门狗
启动后开始从复位值0XFFF递减计数
当忘关键字寄存器中写入OXAAA时,独立看门狗的重装载寄存器的值会加载到计数器中
当计数器计数到0X000时,会产生一个复位信号
注:独立看们狗的预分频寄存器和重装载寄存器具有写保护功能,要修改这两个寄存器须先向关键字寄存器写入0X5555;
配置独立看门狗的步骤:
1.取消寄存器的写保护
2.设置预分频系数
3.设置重装载值
4.使能看门狗
5.应用程序喂狗
窗口看门狗实验
由APB1时钟分频后得到时钟驱动(时钟精度高)
喂狗时间是一个有上下限时间范围的(窗口),窗口看门狗的计数器在上窗口值之外被刷新,或低于下窗口值都会产生复位可设定上限时间(下限固定为4Fh)
WDGA_CT寄存器用于设置窗口看门狗的激活(位7)及看门狗的计数器值T[6:0](位6:0)
注:当T6位(位7)从“1”跳变位“0”时,窗口看门狗会产生复位
WWDG_CFR寄存器用于设置提前唤醒中断(位9),分频系数(位8:7),窗口上限值(位6:0)
注:如果启动了看门狗并允许中断,当递减计数器递减到0X40时,产生早期唤醒中断(EWI),它可以用于喂狗,避免WWDG产生复位
窗口看门狗配置:
1.使能看门狗时钟
2.设置分频系数(WWDG_SetPrescaler())
3.设置上窗口值(WWDG_SetWindowValue())
4.开启提前唤醒中断并分组
5.使能看门狗
6.喂狗
7.编写中断服务函数(WWDG_IRQHandler())
|