专注电子技术学习与研究
当前位置:单片机教程网 >> STM32 >> 浏览文章

STM32独立看门狗程序

作者:佚名   来源:本站原创   点击数:  更新时间:2014年08月17日   【字体:

原理图:



 头文件及完整例程下载:http://www.51hei.com/f/stm32标准例程库函数.rar
程序分析:
#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "usart.h"
#include "wdg.h"
//STM32开发板实验6
//独立看门狗实验  
 
 int main(void)
 {
delay_init();     //延时函数初始化  
NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
// uart_init(9600); //串口初始化为9600
  LED_Init();   //初始化与LED连接的硬件接口
KEY_Init();          //按键初始化  
delay_ms(500);   //让人看得到灭
IWDG_Init(4,625);    //与分频数为64,重载值为625,溢出时间为1s   
LED0=1; //点亮LED0
while(1)
{
if(KEY_Scan(0)==KEY_UP)
{
IWDG_Feed();//如果WK_UP按下,则喂狗
}
delay_ms(10);
};  
}

重点分析 :
IWDG_Init(4,625);   
void IWDG_Init(u8 prer,u16 rlr) 
{
  IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);  //使能对寄存器IWDG_PR和IWDG_RLR的写操作
IWDG_SetPrescaler(prer);  //设置IWDG预分频值:设置IWDG预分频值为64
IWDG_SetReload(rlr);  //设置IWDG重装载值
IWDG_ReloadCounter();  //按照IWDG重装载寄存器的值重装载IWDG计数器
IWDG_Enable();  //使能IWDG
} 

喂狗程序 :
IWDG_ReloadCounter();

 
关闭窗口