微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > stm32 窗口看门狗 wwdg与独立看门狗iwdg的配置运用

stm32 窗口看门狗 wwdg与独立看门狗iwdg的配置运用

时间:11-27 来源:互联网 点击:

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //占先中断等级

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //响应中断优先级

NVIC_Init(&NVIC_InitStructure); //打开中断

i) 中断程序,软件看门狗在自己的中断中喂狗,独立看门狗需要使用systic的定时中断来喂狗。以下两个程序都在stm32f10x_it.c文件中。

void WWDG_IRQHandler(void)

{

WWDG_SetCounter(0x7F); //更新计数值

WWDG_ClearFlag(); //清除标志位

}

void SysTickHandler(void)

{IWDG_ReloadCounter(); //重启计数器(喂狗)

}

j) 注意事项:

i. 有狗平常没事情可以不理,但是千万别忘了喂它,否则死都不知道怎么死的!

ii. 初始化程序的调用一定要在systic的初始化之后。

iii. 独立看门狗需要systic中断来喂,但是systic做别的用处不能只做这件事,所以我写了如下几句代码,可以不影响systic的其他应用,其他systic周期代码也可参考:

第一步:在stm32f10x_it.c中定义变量

int Tic_IWDG; //喂狗循环程序的频率判断变量

第二步:将SysTickHandler中喂狗代码改为下面:

Tic_IWDG++; //变量递增

if(Tic_IWDG>=100) //每100个systic周期喂狗

{IWDG_ReloadCounter();//重启计数器(喂狗)

Tic_IWDG=0; //变量清零

}

上一篇:UCOS移植心得
下一篇:STM32时钟理解

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top