历史上的今天
返回首页

历史上的今天

今天是:2025年04月23日(星期三)

正在发生

2019年04月23日 | STM32的窗口看门狗(WWDG)

2019-04-23 来源:eefocus

一、窗口看门狗由从APB1时钟分频后得到时钟驱动。


             通过可配置的时间窗口来检测应用程序非正常的过迟或过早操作。 


             窗口看门狗最适合那些要求看门狗在精确计时窗口起作用的程序。


二、什么是窗口看门狗?


窗口就是因为其喂狗时间是一个有上下限的范围内(窗口),你可以通过设定相关寄存器,设定其上限时间(下限固定)。喂狗的时间不能过早也不能过晚。


而独立看门狗限制喂狗时间在0-x内,x由相关寄存器决定。喂狗的时间不能过晚


三、窗口看门狗的好处


对于一般的看门狗,因为是在复位前的任意时刻刷新看门狗,但有可能程序跑乱了又跑回到正常的地方,或跑乱的程序正好执行了刷新看门狗操作,这样的情况下就检测不出来了;


       如果使用窗口看门狗,程序员可以根据程序正常执行的时间设置刷新看门狗的一个时间窗口,保证不会提前也不会滞后刷新看门狗,这样可以检测出程序没有按照正常的路径运行非正常地跳过了某些程序段的情况。


 


四、窗口看门狗工作示意图及框图


 


上窗口值W[6:0]必须大于下窗口值0x40。否则就无窗口了


工作示意图

五、产生复位的几种条件


STM32F的窗口看门狗中有一个7位的递减计数器T[6:0],它会在出现下述2种情况之一时产生看门狗复位:


①当喂狗的时候如果计数器的值大于某一设定数值W[6:0]时,此设定数值在WWDG_CFR寄存器定义。


②当计数器的数值从0x40减到0x3F时【T6位跳变到0】。


如果启动了看门狗并且允许中断,当递减计数器等于0x40时产生早期唤醒中断(EWI),它可以用于喂狗以避免WWDG复位。


六、窗口看门狗配置过程


①使能看门狗时钟:


    RCC_APB1PeriphClockCmd();


② 设置分频系数:


    WWDG_SetPrescaler();


③设置上窗口值:


    WWDG_SetWindowValue();


④开启提前唤醒中断并分组(可选):


    WWDG_EnableIT();  


    NVIC_Init();


⑤使能看门狗:


    WWDG_Enable();


⑥喂狗:


   WWDG_SetCounter();


⑦编写中断服务函数


  WWDG_IRQHandler();


-------------------------------------------------------------------------------------------------------


代码如下:


void init_wwdg(void)

{

    NVIC_InitTypeDef   NVIC_InitStructure;

 

    //使能wwdg时钟

    RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE);

 

    // WWDG_CNT=0x7F&WWDG_CNT;   //初始化WWDG_CNT.

 

 

    //设置看门狗时钟  1281Hz = (PCLK1 (42MHz)/4096)/8 = 1281 Hz (~780 us) 

    //指定WWDG预分频器

    WWDG_SetPrescaler(WWDG_Prescaler_8);//Prescaler:计数器时钟

 

    //设置窗口值为80; WWDG计数器只有在计数器时才能刷新低于80(大于64),否则会产生复位

    WWDG_SetWindowValue(0x60);

 

    //设置重载计数值,也就是喂狗

    WWDG_Enable(0x7f);

 

 

    // 初始化中断

    NVIC_InitStructure.NVIC_IRQChannel = WWDG_IRQn; // EXTI0的中断向量号

    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3; // 抢占优先级

    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;  // 响应优先级

    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; // 使能中断

    NVIC_Init(&NVIC_InitStructure);

 

    // 清空提前唤醒中断的标志位

    WWDG_ClearFlag();

 

    // 使能提前唤醒中断

    WWDG_EnableIT();

}

 

 

//当递减计数器递减到0x40时,触发中断函数,进行喂狗

void WWDG_IRQHandler(void)

{

    if(WWDG_GetFlagStatus() == SET)

    {

        // 喂狗

        WWDG_SetCounter(127);

        //WWDG_SetCounter(WWDG_CNT);

        //清空提前唤醒中断的标志位

        WWDG_ClearFlag();

    }

}

 

推荐阅读

史海拾趣

Dymec公司的发展小趣事

在国内市场取得一定成绩后,Dymec公司开始寻求更广阔的发展空间。公司决定进军国际市场,通过参加国际展会、建立海外销售渠道等方式,逐步打开了国际市场的大门。在拓展国际市场的过程中,Dymec公司不仅提升了品牌影响力,还积累了丰富的国际业务经验。

Catalyst公司的发展小趣事

Catalyst公司深知品质是企业生存和发展的根本。因此,公司始终将品质管理放在首位,从原材料采购到生产加工、产品检验等各个环节都进行严格把控。公司还建立了完善的售后服务体系,确保客户在使用过程中能够得到及时、专业的技术支持。这些举措不仅提升了Catalyst产品的品质水平,也赢得了客户的信任和好评。

Anderson Power Products公司的发展小趣事

Catalyst公司深知品质是企业生存和发展的根本。因此,公司始终将品质管理放在首位,从原材料采购到生产加工、产品检验等各个环节都进行严格把控。公司还建立了完善的售后服务体系,确保客户在使用过程中能够得到及时、专业的技术支持。这些举措不仅提升了Catalyst产品的品质水平,也赢得了客户的信任和好评。

ETERNA公司的发展小趣事

1995年,ETERNA被保时捷家族收购,为公司的发展注入了新的活力。保时捷家族对制表业有着深厚的兴趣,他们投入大量资金用于研发和生产。在保时捷家族的支持下,ETERNA不断推出具有创新性的产品,如Spherodrive系统和超薄自动上炼机芯3030等。这些技术的成功应用,使ETERNA在制表业中取得了举足轻重的地位。同时,保时捷家族还通过全球营销战略,将ETERNA品牌推向了更广阔的市场。

Amphenol RF公司的发展小趣事

除了在制表业取得显著成就外,ETERNA还在生物技术领域进行了积极探索。公司利用专有的非病毒、非DNA方法,使用mRNA进行细胞重编程研究。这一技术旨在通过表达特定的蛋白质来逆转细胞的老化过程,实现“倒转时钟”的效果。虽然ETERNA在mRNA领域的具体成果尚未对外公布,但其在该领域的探索精神和技术实力已经引起了业界的广泛关注。

Goldentech Discrete Semiconductor Inc公司的发展小趣事

随着物联网、可穿戴设备等新兴领域的兴起,Goldentech敏锐地捕捉到了市场的新机遇。公司迅速调整战略方向,加大在微型化、低功耗半导体器件的研发投入。通过引入先进的制造工艺和封装技术,Goldentech成功推出了一系列适用于物联网和可穿戴设备的高性能离散半导体产品。这些产品凭借出色的性能和稳定性,在市场中获得了广泛认可,为公司的持续发展注入了新的动力。

问答坊 | AI 解惑

PCI总线的任意波形发生器的设计

摘要:任意波形发生器是信号处理领域中必不可少的仪器设备,而很多任意波形发生器不能产生快速、有效、连续而且易于定制的信号波形。本文提出了一种利用缓冲区快速交换数据、基于PCI总线的任意波形发生器的设计构想,依据该构想设计的任意波形发生 ...…

查看全部问答>

c语言设计

本帖最后由 paulhyde 于 2014-9-15 09:21 编辑 C语言程序设计的一本书,共享一下  …

查看全部问答>

想买块FPGA板,推荐一下呗!

大家好,本人今年要参加全国电子设计竞赛,各位大哥哥大姐姐谁有相关的板子卖给小弟!不胜感激!FPGA板要求:板子要精炼,不需要太多花俏的东西例如数码管什么的,只要把线全部引出了即可,支持JTAG下载!芯片最好clylone!! 不是也没关系! ...…

查看全部问答>

Spartan-6 and Virtex-6 FPGA Embedded Kit FAQ

1. Where can I purchase an Embedded kit?   2. How much do the Spartan-6 and Virtex-6 FPGA Embedded Kits cost? 3. When will I get my kit? 4. What are included in the Embedded Kits? 5. What expansion ports are avail ...…

查看全部问答>

你正在使用什么单片机?

[ 本帖最后由 飞嵌电子 于 2010-7-8 15:48 编辑 ]…

查看全部问答>

驱动无法加载到Device.EXE

注册表已经写入成功了,但是dll文件没加入到device.EXE   这是 什么问题了?…

查看全部问答>

SD卡等存储设备突然掉电后不可用的原因求助

是BPB还是FAT或FDT的损坏? 除了硬件损坏,文件系统突然断电会有什么样的写入错误造成存贮设备不可用吗? 一般的文件系统如果是先写数据,再记录FAT和FDT会提高保护的可能性吗。…

查看全部问答>

急急急,SOS!!!!

急求在ccs环境下ucosii移植到5402的源代码(不用修改的)。。。。。。。…

查看全部问答>

电源管理中ECO是神马意思?

最近在看一份富士通半导体的产品选型文件中出现的名词ECO不解,在百度上找到的结果是:Engineering Change Order。还有的说是在与环保相关的概念和资料中,ECO 是ECOLOGICAL的缩写,用来表示生态环保的意思。小弟就是想知道ECO到底是个什么技术?还 ...…

查看全部问答>

BeagleBone Black坏了,谁有闲置的出给我吧

BeagleBone Black坏了,谁有闲置的出给我吧 …

查看全部问答>