微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > stm32 独立看门狗

stm32 独立看门狗

时间: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的看门狗

}

}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top