實驗原理:
STM32內部包含視窗看門狗,通過看門狗可以監控程式執行,程式錯誤
時,未在規定時間喂狗,自動復位ARM。本實驗通過按鍵按下,停止喂狗,
製造程式執行 錯誤,從而產生復位 。
實驗現象:
iCore1S雙核心板三色LED交替閃爍,當按鍵按下超過1s,看門狗復位ARM。
核心程式碼:
int main(void) { int i; for(i = 0;i < 10000; i++) system_clock.initialize(); led.initialize(); key.initialize(); wwdg.initialize(); LED_RED_ON; while(1){ if(!KEY_INPUT){ //按鍵按下,開始喂狗 HAL_Delay(100); HAL_WWDG_Start_IT(&hwwdg);//ι¹· wwdg.feed_dog(&hwwdg); } } }
static int initialize(void) { hwwdg.Instance = WWDG; hwwdg.Init.Prescaler = WWDG_PRESCALER_8; //設定預分頻值 hwwdg.Init.Window = 90; //設定視窗值 hwwdg.Init.Counter = 127; //設定計數器初值 HAL_WWDG_Init(&hwwdg); return 0; }
原始碼下載連結:
連結:http://pan.baidu.com/s/1dFxk4Dz 密碼:oqyi