高级会员

- 积分
- 865
- 金钱
- 865
- 注册时间
- 2016-8-25
- 在线时间
- 485 小时
|
5金钱
大家好,在学习窗口看门狗时,按照原子哥的例程,仅仅对调中断服务函数中的两行语句,就发生了截然不同的现象:
原先正确的语句:
[mw_shl_code=c,true]
//窗口看门狗中断服务程序
void WWDG_IRQHandler(void)
{
WWDG_SetCounter(WWDG_CNT); //重设窗口看门狗值
WWDG_ClearFlag();//清除提前唤醒中断标志位
LED1=!LED1;
}
[/mw_shl_code]
这时下载代码到F407开发板后,DS1绿灯正确闪烁。
但是对调两句:
[mw_shl_code=c,true]
//窗口看门狗中断服务程序
void WWDG_IRQHandler(void)
{
WWDG_SetCounter(WWDG_CNT); //重设窗口看门狗值
LED1=!LED1;
WWDG_ClearFlag();//清除提前唤醒中断标志位
}
[/mw_shl_code]
这时下载到开发板后,DS0红灯不停的闪烁,表明系统一直在复位。
为何会出现这样的情况呢?
|
最佳答案
查看完整内容[请看2#楼]
这个现象无法解释。 窗口看门狗有点怪异,按我们的理解,调转这个是不会有问题。但是实际上,是不行的。你暂时记住,必须这样就行了,至于为什么,我暂时还没找到说法。。。
|