stm32有两个看门狗:独立看门狗能够在检测到硬件毛病的时分复位cpu,窗口看门狗能够在检测到软件毛病的时分复位cpu。
我在程序中运用的是窗口看门狗,它有俩窗口值:上窗口值能够经过装备WWDG->CFR寄存器的底七位,下窗口值是固定的0x40。WWDG_CR的底七位是看门狗的count计数值。
当count在窗口值之外更新或许计数值记到小于0x40的时分,窗口看门狗复位cpu。这儿需求留意的是:1、延时函数的喂狗如下
for(i=0;i<1000;i++){
delayms(1);
FEED_DOG;
}
delayms(1);
FEED_DOG;
}
2、在调试的时分,在main函数最初加点灯的代码:要先看按复位键的时分灯有没有平息。有时分cpu不工作了,灯却仍是亮的。这样就不知道狗有没有复位了。
能够经过串口打印相关调试信息。