实验六、七 独立和窗口看门狗实验
看门狗:单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路就是为了避免这种情况的发生。看门狗的作用就是在一定时间内(通过定时计数器实现)没有接收喂狗信号(表示 MCU 已经挂了),便实现处理器的自动复位重启(发送复位信号)。
独立看门狗
独立看门狗配置参考代码:
#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 "stm32f10x.h"
#include "led.h"
#include "delay.h"
#include "beep.h"
#include "key.h"
#include "exti.h"
#include "sys.h"
#include "usart.h"
int main(){
delay_init();
uart_init(115200); //串口初始化为115200
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
LED_Init();
KEY_Init();
EXTIX_Init();
delay_ms(200);
LED0=0;
u8 key;
IWDG_Init(4,625);//计算溢出时间为1秒
while(1){
key=KEY_Scan(0);
if(key==2){//key0按下
IWDG_ReloadCounter();
}
}
}
窗口看门狗
|