独立看门狗概述
常用寄存器和库函数配置
手把手写独立看门狗实验
#ifndef _IWDG_H
#define _IWDG_H
#include "sys.h"
void IWDG_Init(u8 prer,u16 rlr); //初始化独立看门狗
void IWDG_Feed(void); //喂狗
#endif
#include "stm32F4xx.h"
#include "iwdg.h"
void IWDG_Init(u8 prer,u16 rlr)
{
// 取消写保护
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
// 设置预分频系数 确定时钟
IWDG_SetPrescaler(prer);
// 设置看门狗重装载值 确定溢出时间
IWDG_SetReload(rlr);
IWDG_ReloadCounter();
// 使能看门狗
IWDG_Enable();
}
#include "stm32f4xx.h"
#include "beep.h"
#include "led.h"
#include "delay.h"
#include "key.h"
#include "usart.h"
#include "exti.h"
#include "iwdg.h"
int main(void)
{
delay_init(168);
LED_Init();
BEEP_Init();
KEY_Init();
delay_ms(1000);
LED0 = 0;
IWDG_Init(4,500);
while(1)
{
if(KEY_Scan(0) == WKUP_PRES)
{
IWDG_ReloadCounter();
}
delay_ms(10);
}
}