新闻中心

EEPW首页>嵌入式系统>设计应用> stm32 独立看门狗

stm32 独立看门狗

作者: 时间:2016-11-17 来源:网络 收藏
独立看门狗(IWDG)由专用的低速时钟(LSI)驱动,即使主时钟发生故障它也仍然有效。IWDG最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。WWDG最适合那些要求看门狗在精确计时窗口起作用的应用程序。”
/*
* 采用独立看门狗作为看门狗定时器
* 独立看门狗由内部专门的 40Khz 低速时钟驱动,
* 即使主时钟发生故障,它也仍然有效
*000:预分频因子=4 // 最短时间 0.1 ms
*001:预分频因子=8 // 最短时间 0.2 ms
*010:预分频因子=16 // 最短时间 0.4 ms
*011:预分频因子=32 // 最短时间 0.8 ms
*100:预分频因子=64 // 最短时间 1.6 ms
*101:预分频因子=128 // 最短时间 3.2 ms
*110:预分频因子=256 // 最短时间 6.4 ms
*111:预分频因子=256 //
*/
初始化,并且启动看门狗
void IWDG_Initial(void)
{
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); //①使能对寄存器 I 写操作
IWDG_SetPrescaler(IWDG_Prescaler_16); //②设置 IWDG 预分频值:设置 IWDG 预分频值
IWDG_SetReload(0xFFF); //②设置 IWDG 重装载值 定时时间1638.4ms
IWDG_ReloadCounter(); //③按照 IWDG 重装载寄存器的值重装载 IWDG 计数器
IWDG_Enable(); //④使能 IWDG
}
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);//使能写入PR和RLR
主程序中喂狗
void main void
{
while(1)
{
IWDG_ReloadCounter();// 喂狗 1.6 s的看门狗
}
}


关键词:stm32独立看门

评论


技术专区

关闭