什么是看门狗
看门狗(watchdog)指的是一种监控系统或程序,用于定期检测和监控其他系统或程序的运行状态,并在出现问题或故障时采取相应的措施。它可以是硬件设备,也可以是软件程序。
在计算机领域中,看门狗通常是指一种特殊的计时器硬件设备。这个设备在电脑系统中运行,并定期检查软件程序是否正常工作。如果程序出现故障或停止运行,看门狗设备会通过发送信号或执行特定的动作,比如重新启动系统来恢复正常运行。
看门狗也可以是一种软件程序,通过监测其他软件程序的运行状态来确保系统的稳定和安全。这些软件程序可以检测到程序崩溃、死锁、资源泄露等问题,并采取相应的措施,比如重新启动程序、发送警报或者执行自动修复等。
STM32系列单片机通常配备了内置的看门狗定时器(通常称为独立看门狗,IWDG)和窗口看门狗定时器(WWDG),以提供更可靠的系统保护。
独立看门狗(IWDG)
独立看门狗(IWDG)是STM32中常用的看门狗,它是一个独立的硬件模块,可以在系统内部独立运行。通过配置IWDG定时器的计数器和预分频器,可以设置看门狗的定时时间。当看门狗定时器计数器达到预设的值时,会产生看门狗超时事件,触发系统复位。
配置独立看门狗步骤
使用STM32cubeMX配置独立看门狗设置步骤:
图1
图2:配置步骤
STM32中独立看门狗的时钟频率为32KHZ,预分频设置32,此时频率每秒1KHZ,重加载1次为1ms,1000次就是一秒,上图④中因为计数1000次为0-999(因此写1000-1),如图2这样配置就为看门狗每一秒检测一次。
函数接口:
MX_IWDG_Init(); //初始化独立看门狗
HAL_IWDG_Refresh(IWDG_HandleTypeDef *hiwdg); //喂狗