STM32独立看门狗
#include "wdg.h"
//prer:分频数:0~7(只有低三位有效!)
//分频因子=4*2^prer.但最大值只能是256!
//rlr:重装载寄存器值,低11位有效
//溢出时间计算:Tout=((4*2^prer)*rlr)/40 (ms).
void IWDG_Init(u8 prer,u16 rlr)
{
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); //取消写保护
IWDG_SetPrescaler(prer); //设置预分频
IWDG_SetReload(rlr); //设置重装载值
IWDG_ReloadCounter(); //一开始从rlr读取
IWDG_Enable(); //使能
}
//喂狗
void IWDG_Feed(void)
{
IWDG_ReloadCounter(); //reload
}
//初始化
IWDG_Init(4,3125); //5s喂狗
//循环或定时器中
IWDG_Feed();

本文详细介绍了STM32的独立看门狗(IWDG)的初始化和喂狗过程。通过`IWDG_Init`函数设置预分频器和重装载值,实现特定的超时时间。在循环或定时器中调用`IWDG_Feed`函数进行喂狗,确保系统不会因看门狗定时器溢出而复位。示例代码展示了如何设置5秒的喂狗周期,并在程序中正确使用喂狗操作。
256

被折叠的 条评论
为什么被折叠?



