了解两种看门狗(我叫它:系统运行故障探测器和独立系统故障探测器,新手往往被这个并不形象的象形名称搞糊涂)之间的区别和基本用法。
b)
都是用来探测系统故障,通过编写代码定时发送故障清零信号(高手们都管这个代码叫做“喂狗”),告诉它系统运行正常。一旦系统故障,程序清零代码(“喂狗”)无法执行,其计数器就会计数不止,直到记到零并发生故障中断(狗饿了开始叫唤),控制CPU重启整个系统(不行啦,开始咬人了,快跑……)。
c)
独立看门狗Iwdg——我的理解是独立于系统之外,因为有独立时钟,所以不受系统影响的系统故障探测器。(这条狗是借来的,见谁偷懒它都咬!)主要用于监视硬件错误。
窗口看门狗wwdg——我的理解是系统内部的故障探测器,时钟与系统相同。如果系统时钟不走了,这个狗也就失去作用了。(这条狗是老板娘养的,老板不干活儿他不管!)主要用于监视软件错误。
d)
void WDG_Configuration(void);
e)
WDG_Configuration();
f)
void WDG_Configuration()
{
//软件看门狗初始化
// (PCLK1/4096)/8= 244 Hz (~4 ms)
// WWDG timeout = ~4 ms * 64 = 262 ms
//独立看门狗初始化
}
g)
RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE);
h)
i)
void WWDG_IRQHandler(void)
{
WWDG_ClearFlag();
}
void SysTickHandler(void)
{
}
j)
i.
ii.
iii.
第一步:在stm32f10x_it.c中定义变量
int Tic_IWDG;
第二步:将SysTickHandler中喂狗代码改为下面:
Tic_IWDG++;
if(Tic_IWDG>=100)
{
上一篇:STM32笔记之十二:时钟不息工作不止,systic时钟应用
下一篇:STM32笔记之十四:基本问题,来讨论一下软件架构
推荐阅读最新更新时间:2024-03-16 14:33