码迷,mamicode.com
首页 > 其他好文 > 详细

[STM31F103]独立看门狗

时间:2018-11-17 21:04:08      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:col   led   时间   main   看门狗   void   ==   load   保护   

独立看门狗步骤:

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]独立看门狗

标签:col   led   时间   main   看门狗   void   ==   load   保护   

原文地址:https://www.cnblogs.com/zhaohu/p/9975034.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!