[STM31F103]独立看门狗

Posted zhaohu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[STM31F103]独立看门狗相关的知识,希望对你有一定的参考价值。

独立看门狗步骤:

l 取消寄存器写保护:

  n IWDG_WriteAccessCmd();

l 设置独立看门狗的预分频系数,确定时钟:

  n IWDG_SetPrescaler();

l 设置看门狗重装载值,确定溢出时间:

  n IWDG_SetReload();

l 使能看门狗

  n IWDG_Enable();

l 应用程序喂狗:

  n IWDG_ReloadCounter();

l 溢出时间计算:

  n Tout=((4×2^prer) ×rlr) /40 M3)时钟为LSI 40KHZ

源码:

 

 1 //wdg.c
 2 //pere:分频数:0~7 只有低三位有效
 3 //分频因子=4*2^prer,但最大只能256
 4 void IWDG_Init(u8 prer,u16 rlr) 
 5 {    
 6      IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
 7     IWDG_SetPrescaler(prer);
 8     
 9     IWDG_SetReload(rlr);
10     IWDG_ReloadCounter();
11     IWDG_Enable();
12 }
13 //喂狗
14 void IWDG_Feed(void)
15 {   
16      IWDG_ReloadCounter();//reload                                           
17 }
18 
19 //main.c
20 int main(void)
21  {        
22     delay_init(); 
23     NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
24     uart_init(115200);
25      LED_Init();
26     KEY_Init(); 
27     delay_ms(500);
28     IWDG_Init(4,625); 
29     LED0=0;
30     while(1)
31     {
32         if(KEY_Scan(0)==WKUP_PRES)
33         {
34             IWDG_Feed();
35         }
36         delay_ms(10);
37     };     
38 }
39 
40 喂狗使程序不会复位,这样LED灯就不会熄灭然后500ms再亮,溢出时间1S

 

以上是关于[STM31F103]独立看门狗的主要内容,如果未能解决你的问题,请参考以下文章

STM32F103ZET6独立看门狗

STM32F103五分钟入门系列(十四)窗口看门狗WWDG

STM32F103五分钟入门系列(十三)独立看门狗IWDG

stm32独立看门狗和窗口看门狗的区别是啥

STM32的看门狗了解及代码演示

STM32的独立看门狗