大佬的介绍https://www.cnblogs.com/xwcs/p/13210979.html
本文仅仅用以学习保存,还没创建个人博客。
STM32内置两个看门狗,可以用来检测和解决又软件引起的错误和故障,当计数器达到给定超时值时,触发中断(仅适用窗口看门狗)或者产生系统复位
独立看门狗: IWDG由专用低速时钟(LSI)驱动,即使主时钟发生故障时仍有效(独立看门狗适用于需要看门狗作为一个在主程序之外能够完全独立工作,并且对时间要求较低)
窗口看门狗:从APB1时钟分频后得到时钟驱动,通过可配置的时间窗口来检测应用程序非正常的 过迟或过早操作(窗口看门狗最适合那些要求看门狗在精确计时窗口起作用的程序)
看门狗溢出时间计算:Tout=((4x2^prer)xrlr)/32 (M4)
/**
*看门狗初始化
*prer 分频系数 0~6
*rlr 重载值 看分频 系数对应的范围
*/
void IWDG_Init(u8 prer,u16 rlr)
{
//取消写保护
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
//设置分频系数
IWDG_SetPrescaler(prer);
//设置重载值
IWDG_SetReload(rlr);
//设置初始化值
IWDG_ReloadCounter();
//使能看门狗
IWDG_Enable();
}
//在while函数里喂狗
IWDG_ReloadCounter();//喂狗