×
单片机 > 单片机程序设计 > 详情

STM32F0x2 IWDG(独立看门狗)

发布时间:2020-05-19 发布时间:
|

单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路就是为了避免这种情况的发生。


看门狗的作用就是在一定时间内(通过定时计数器实现)没有接收喂狗信号(表示 MCU 已经挂了),便实现处理器

的自动复位重启(发送复位信号)。 


以下为stm32f042单片机独立看门狗相关代码:


/**********************************************************

*函数描述:初始化独立看门狗,timeout为1s

*函数:void IWDG_Init(unsigned char usb_sw) 

*参数:无

*作者:

*日期:

***********************************************************/

void IWDG_Init(void)

{

  /* Set counter reload value to obtain 250ms IWDG TimeOut.

  Counter Reload Value = 1000ms/IWDG counter clock period

  = 1000ms / (128/LSI)

  = LsiFreq/128

  */

  IWDG->KR = 0x5555;  //使能对寄存器写操作

  IWDG->PR = 0x05;    //设置预分频为128分频

  IWDG->KR = 40000/128;  //设置重装载值

  IWDG->KR = (uint16_t)0xAAAA; //重装载计数器

  IWDG->KR = (uint16_t)0xCCCC;  //使能看门狗

}

 

/* 喂狗函数  */

void IWDG_ReloadCounter(void)

{

  IWDG->KR = (uint16_t)0xAAAA;

}




『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
基于单片机的医院护理呼叫对讲系统设计