实验原理:
STM32内部包含窗口看门狗,通过看门狗可以监控程序运行,程序错误
时,未在规定时间喂狗,自动复位ARM。本实验通过按键按下,停止喂狗,
制造程序运行 错误,从而产生复位 。
实验现象:
iCore1S双核心板三色LED交替闪烁,当按键按下超过1s,看门狗复位ARM。
核心代码:
int main(void)
{
int i;
for(i = ;i < ; i++) system_clock.initialize();
led.initialize();
key.initialize();
wwdg.initialize();
LED_RED_ON; while(){
if(!KEY_INPUT){ //按键按下,开始喂狗
HAL_Delay();
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 = ; //设置窗口值
hwwdg.Init.Counter = ; //设置计数器初值
HAL_WWDG_Init(&hwwdg); return ;
}
源代码下载链接:
链接:http://pan.baidu.com/s/1dFxk4Dz 密码:oqyi