STM32F1笔记(七)WWDG窗口看门狗

发布者:翅膀小鹰最新更新时间:2022-05-26 来源: eefocus关键字:STM32F1  WWDG  窗口看门狗 手机看文章 扫描二维码
随时随地手机看文章

窗口看门狗与独立看门狗最大的不同是中断,窗口看门狗拥有一个提前唤醒中断。也就是在快要产生复位的前一段时间(T[6:0]=0x40)来提醒需要进行喂狗,否则将复位。因此当窗口看门狗的计数器值减到0x40的时候,产生中断,在中断里向WWDG_CR重新写入计数器的值,即喂狗。


注意进入中断后,必须在不大于1个窗口看门狗计数周期的时间内重新写WWDG_CR,否则,看门狗将产生复位!

T[6:0]就是WWDG_CR的低七位,就是窗口看门狗的计数器。

W[6:0]是WWDG->CFR的低七位,是窗口看门狗的上窗口,下窗口值是固定的0x40。


低于下窗口值会产生复位。要注意当窗口看门狗的计数器在上窗口值之外被刷新也会产生复位。

最后要注意的是状态寄存器WWDG_SR,需要通过软件置0。

窗口看门狗配置示例


/***********************************************************

* tr:计数器值

* wr:窗口值

* fprer:分频系数,仅最低2位有效

* Fwwdg = PCLK1/(4096 * 2^fprer)

***********************************************************/

void WWDG_Init(u8 tr,u8 wr,u32 fprer)

    RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE);

 

    WWDG_CNT = tr&WWDG_CNT;

 

    WWDG_SetPrescaler(fprer);

 

    WWDG_SetWindowValue(wr);

 

    WWDG_Enable(WWDG_CNT);                 

 

    WWDG_ClearFlag();

 

    WWDG_NVIC_Init();

 

    WWDG_EnableIT();

 

void WWDG_NVIC_Init()

{

    NVIC_InitTypeDef NVIC_InitStructure;

 

    NVIC_InitStructure.NVIC_IRQChannel = WWDG_IRQn;

    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;

    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;

    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

 

    NVIC_Init(&NVIC_InitStructure);

}

 


喂狗相关中断和代码


void WWDG_Set_Counter(u8 cnt)

{

    WWDG_Enable(cnt); 

}

 

void WWDG_IRQHandler(void)

{

    WWDG_SetCounter(WWDG_CNT);

 

    WWDG_ClearFlag();

}

关键字:STM32F1  WWDG  窗口看门狗 引用地址:STM32F1笔记(七)WWDG窗口看门狗

上一篇:STM32F1笔记(五)外部中断EXTI
下一篇:STM32F1笔记(六)独立看门狗IWDG

推荐阅读最新更新时间:2024-10-30 08:47

STM32F1小白系列之四、独立看门狗(IWDG)
一、看门狗原理 1、单片机中有一个【寄存器(计数器)】专门用来倒计数,这个计数器倒计数是独立于程序之外的,不受程序影响的。(程序是井,计数器是河,井水不犯河水,你跑你的程序,我记我的数,互不影响。) 2、但是: 这个【计数器】会有一个初值,这个值会逐次递减,终有一刻会自减到0,当计数自减到0的时候,【系统】就会强制重启,程序会从头开始运行。 而当计数器每次倒计数到0之前,如果往计数器里面重新写入一次数值,他就永远不会倒计数到0,这时候系统也就不会重启了。 3、所以: 程序员写程序的时候,如果开启了看门狗,会在程序中实现这样一个功能——专门设定固定的时间循环往复的往【计数器】中写入一个数值(喂狗)。 当程序正常
[单片机]
STM32-(32):窗口看门狗
窗口看门狗 窗口看门狗通常被用来监测由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。除非递减计数器的值在T6位变成0前被刷新,此看门狗电路在达到可编程的时间周期时,会产生一个MCU复位。在递减计数器达到窗口寄存器之前,如果递减计数器值的第7位(在控制寄存器中)被刷新,那么也将产生一个MCU复位。这表明递减计数器需要在一个有限的窗口中被刷新。 T6即是窗口看门狗的自减计数器的第六位(最高位),该计数器的时钟来自PCLK1/4096/预设分频数。在该计数器的T6位变为0后(小于0X40 ) ,就会引起一复位。这是窗口的下限。而当计数器的值在大于窗口配置寄存器的窗口值之前就被修改的话,也会引起一次复位,这
[单片机]
STM32-(32):<font color='red'>窗口</font><font color='red'>看门狗</font>
[HAL库学习之路]6.WWDG-窗口看门狗
记录自己的STM32的HAL库的学习之路,不定期更新… 一、Pinout 二、Clock Configuration 三、Configuration 配置GPIO 配置WWDG 配置NVIC 超时时间: T=4096∗Prescaler∗(T +1)/Fpclk Prescaler为WWDG的预分频系数,Fpclk为APB1时钟,T 为窗口看门狗的计数器低6位。 四、Generate Code 代码 窗口看门狗的上窗口为0x5f,在计数器为0x7f至0x5f之间喂狗程序复位,使能提前唤醒中断,计数器减至0x40会产生一个中断,在中断完成喂狗及翻转PF10。 int main(void)
[单片机]
[HAL库学习之路]6.<font color='red'>WWDG</font>-<font color='red'>窗口</font><font color='red'>看门狗</font>
STM32F4学习笔记9——独立看门狗窗口看门狗
STM32F4xx内置俩个看门狗,提供了更高的安全性、时间的精确性和使用的灵活性。两个看门狗设备可用来检测和解决由软件错误引起的故障;当计数器大道给定的超时值触发一个中断(触发中断仅适用于窗口看门狗)或产生系统复位。 地理看门狗IWDG有用们的低速时钟LSI驱动,及时主时钟发生故障他也任然有效。窗口看门狗由APB1是中国分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。 IWDG最时候用于哪些需要一个看门狗在主程序之外能够独立工作并且对时间精度要求较低的场合,WWDG适合用于哪些要求看门狗在精确计算计时窗口起作用的应用程序。 IWDG主要特性与功能 ·自由运行的递减计数器 ·时钟由独立RC振荡器提供
[单片机]
STM32F4学习笔记9——独立<font color='red'>看门狗</font>与<font color='red'>窗口</font><font color='red'>看门狗</font>
STM32F1_ 片内FLASH编程
前言 今天总结“STM32F103片内FLASH编程”,对于学习编程的人来说“FLASH”这个词肯定很熟悉,因为FLASH主要用于存储数据。对于STM32来说,内部FLASH的容量有大有小,从16K到2M不等,主要看芯片的型号。 对于刚从51或者430转入学习ARM-Cortex M芯片的人来说,可能只知道内部FLASH是拿来装载程序的,事实上Cortex M芯片内部FLASH的可以拿来编程的,而且还可以像外部FLASH一样存储数据。对,今天提供的工程就是使用内部FLASH像外部FLASH一样读写数据,而且不是块或者页编程(即不覆盖临近地址数据)。 在实际的开发中,内部FLASH存储数据也是很重要的一点,特别是一些不常修改
[单片机]
STM32F1_ 片内FLASH编程
STM32的窗口看门狗WWDG
一、窗口看门狗由从APB1时钟分频后得到时钟驱动。 通过可配置的时间窗口来检测应用程序非正常的过迟或过早操作。 窗口看门狗最适合那些要求看门狗在精确计时窗口起作用的程序。 二、什么是窗口看门狗? 窗口就是因为其喂狗时间是一个有上下限的范围内(窗口),你可以通过设定相关寄存器,设定其上限时间(下限固定)。喂狗的时间不能过早也不能过晚。 而独立看门狗限制喂狗时间在0-x内,x由相关寄存器决定。喂狗的时间不能过晚 三、窗口看门狗的好处 对于一般的看门狗,因为是在复位前的任意时刻刷新看门狗,但有可能程序跑乱了又跑回到正常的地方,或跑乱的程序正好执行了刷新看门狗操作,这样的情况下就检测不
[单片机]
STM32的<font color='red'>窗口</font><font color='red'>看门狗</font>(<font color='red'>WWDG</font>)
stm32看门狗的特点是什么
stm32看门狗部分内容当中较难理解的是窗口看门狗,其中窗口值设置以及如何引发复位更是很难搞懂,因此从根本上分析一下窗口看门狗的工作原理,而与其有关的中断则略过。 stm32有两个看门狗,独立看门狗和窗口看门狗,其实两者的功能是类似的,只是喂狗的限制时间不同。独立看门狗有自己独立的40Khz时钟,不存在使能问题;而窗口看门狗使用的是PCLK1时钟,需要先使能时钟。以下是关于看门狗的具体说明: ①、独立看门狗是限制喂狗时间在0-x内,x由你的相关寄存器决定。喂狗的时间不能过晚。 ②、窗口看门狗,所以称之为窗口就是因为其喂狗时间是一个有上下限的范围内,你可以通过设定相关寄存器,设定其上限时间和下限时间。喂狗的时间不能过早也不能过晚
[单片机]
STM32看门狗--窗口看门狗
stm32有两个看门狗,独立看门狗和窗口看门狗,其实两者的功能是类似的,只是喂狗的限制时间不同。 独立看门狗是限制喂狗时间在0-x内,x由你的相关寄存器决定。喂狗的时间不能过晚。 窗口看门狗,所以称之为窗口就是因为其喂狗时间是一个有上下限的范围内,你可以通过设定相关寄存器,设定其上限时间和下限时间。喂狗的时间不能过早也不能过晚。 图1 窗口看门狗的 上窗口就是配置寄存器WWDG- CFR里设定的W ; 下窗口是固定的0x40; 当窗口看门狗的计数器在上窗口值之外,或是低于下窗口值都会产生复位。 图2 && 上窗口的值可以只有设定,7位二进制数最大只可以设定为127(0x7F),最小又必须大于下窗口的0x40,所以其
[单片机]
STM32<font color='red'>看门狗</font>--<font color='red'>窗口</font><font color='red'>看门狗</font>
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved