STM32F0x2 IWDG(獨立看門狗)

單片機系統在外界的干擾下會出現程序跑飛的現象導致出現死循環,看門狗電路就是爲了避免這種情況的發生。

看門狗的作用就是在一定時間內(通過定時計數器實現)沒有接收餵狗信號(表示 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;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章