前注:本文章主要讲解【原理】
内容为 'Jojo'编写,日常学习总结,内容如有不足、不妥之处请私信告知,谢谢!
实验
框图
1.窗口看门狗时钟
窗口看门狗时钟来自 PCLK1,PCLK1 最大是 36M,由 RCC 时钟控制器开启。
2.计数器
窗口看门狗的计数器是一个7
位的递减计数器,计数最大值为
0x7F
,当计数器递减到
0x3F
时,就会产生一个复位信号,重启整个系统。当递减计数器递减到0x40
时,如
果使能了提前唤醒中断(WWDG_CFG的Bits[9]位EWI设置为1),则会产生提前唤醒中断
,在该中断可以保存重要数据或者向WWDG_CR重新写入新计数器值,完成喂狗操作。一旦
0x40
变为
0x3F,系统将进行复位,因此必须在一个窗口看门狗计数周期内完成喂狗操作。
WWDG_CR的Bits[7]位WDGA为窗口看门狗使能位,当为1时,窗口看门狗才工作。

3.上窗口
窗口看门狗的
WWDG_CFG
的
Bits[6:0]
位为窗口上边界值,该值应小于计数器最大值
0x7F,
必须大于 0X40
,如果小于或者等于
0X40
就是失去了窗口的价值。
4.逻辑与或
如果想结尾
Aout的复位为假,而输入Ain2
看门狗使能为真,则
Ain1
必为假才行。
Bin2
为递减计数器最高位,如果为
1
,则肯定大于0x3F
,再逻辑非,
Bin2
为
0
,同时需要
Bin1
也为假。
Cin2
写
WWDG_CR
,为真,
此时整个系统的真假由Cin1决定
。当
T6:0>W6:0
时,
Cin1=1
,此时对应计数器值在上边界以上。当
T6:0<W6:0
时,
Cin1=0
,此时对应计数器值在上边界以下,
并且写入WWDG_CR才会复位。