IWDG-----独立看门狗,独立于系统之外,因为有独立时钟,所以不受系统影响的系统故障探测器。主要用于监视硬件错误。
WWDG---窗口看门狗,系统内部的故障探测器,时钟与系统相同。如果系统时钟不走了,这个狗也就失去作用了。主要用于监视软件错误。
二者区别如下:
独立看门狗没有中断,窗口看门狗有中断
独立看门狗有硬件软件之分,窗口看门狗只能软件控制
独立看门狗只有下限,窗口看门狗又下限和上限
独立看门狗是12位递减的。窗口看门狗是7位递减的
独立看门狗是用的内部的大约40KHZ RC振荡器,窗口看门狗是用的系统时钟APB1ENR
独立看门狗
独立看门狗没有中断功能,只要在计数器减到0之前,重新装载计数器的值,就不会产生复位
独立看门够有硬件和软件之分,硬件是通过烧写器的“设定 选项几节等”配置
一旦开启了硬件看门狗,那么就停不下来了,只能在重新配置“设定选项几节等”才能关掉硬件看门狗
软件看门狗只需要设置IWDG->KR=0XCCCC;就可以启动看门狗了
软件狗可以在系统复位时关掉
如果在在初始化里开启软件看门狗,那就开启了软件看门狗,
独立看门狗是12位递减的寄存器,使用片子内部的RC振荡器,这个振荡器是关不掉的
窗口看门狗
窗口看门狗有中断,这个中断的作用是在计数器达到下限0x40的时候,产生中断,让你喂狗
如果你不喂狗,计数器的值变为0x3f的时候,将会产生系统复 位
即使是喂狗,也应该在中断里快速喂狗,要不时间长了计数器减一也会变成0x3f产生复位
这个时间根据芯片手册的公式进行计算即可得到
窗口看门狗只 有软件开启方式,还有一个上限值
这个值如果大于计数器的初始值,那么就没有任何作用了
这个值小于计数器的初始值得时候,当计数器的值大于上限值时你对 计数器进行装载,将会产生复位
只有在计数器减到小于上限值时,你才能重新装载计数器
意思就是说只有计数器的值在上限值和下限值之间你才能装载计数器,否则就会产生系统复位
当上限值小于下限值,也没有意义
|