STM32窗口看门狗实验课件

上传人:石磨 文档编号:183184450 上传时间:2021-05-31 格式:PPT 页数:15 大小:455.50KB
返回 下载 相关 举报
STM32窗口看门狗实验课件_第1页
第1页 / 共15页
STM32窗口看门狗实验课件_第2页
第2页 / 共15页
STM32窗口看门狗实验课件_第3页
第3页 / 共15页
STM32窗口看门狗实验课件_第4页
第4页 / 共15页
STM32窗口看门狗实验课件_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《STM32窗口看门狗实验课件》由会员分享,可在线阅读,更多相关《STM32窗口看门狗实验课件(15页珍藏版)》请在金锄头文库上搜索。

1、2021/5/31,STM32窗口看门狗实验,1,ALIENTEK,例说STM32,例说STM32,ALIENTEK开发板购买店铺 店铺:,STM32窗口看门狗实验,ALIENTEK,第8讲 窗口看门狗,8.1 窗口看门狗原理 8.2 窗口看门狗寄存器 8.3 窗口看门狗配置步骤 8.4 实验讲解,例说STM32,STM32窗口看门狗实验,ALIENTEK,8.1 窗口看门狗原理,例说STM32,窗口看门狗(WWDG)通常被用来监测由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。除非递减计数器的值在T6位(WWDG-CR的第六位)变成0前被刷新,看门狗电路在达到

2、预置的时间周期时,会产生一个MCU复位。在递减计数器达到窗口配置寄存器(WWDG-CFR)数值之前,如果7位的递减计数器数值(在控制寄存器中)被刷新, 那么也将产生一个MCU复位。这表明递减计数器需要在一个有限的时间窗口中被刷新。他们的关系可以用下图来说明:,STM32窗口看门狗实验,ALIENTEK,例说STM32,上图中,T6:0就是WWDG_CR的低七位,W6:0即是WWDG-CFR的低七位 T6:0就是窗口看门狗的计数器,而W6:0则是窗口看门狗的上窗口,下窗口值是 固定的(0X40)。当窗口看门狗的计数器在上窗口值之外被刷新,或者低于下窗 口值都会产生复位。 上窗口值(W6:0)是由

3、用户自己设定的,根据实际要求来设计窗口值,但是一 定要确保窗口值大于0X40,否则窗口就不存在了。 窗口看门狗的超时公式如下: Twwdg=(40962WDGTB(T5:0+1) /Fpclk1; 其中: Twwdg:WWDG超时时间(单位为ms) Fpclk1:APB1的时钟频率(单位为Khz) WDGTB:WWDG的预分频系数 T5:0:窗口看门狗的计数器低6位,STM32窗口看门狗实验,ALIENTEK,例说STM32,根据上面的公式,假设Fpclk1=36Mhz,那么可以得到最小-最大超时时间表如下表 所示: 总结: STM32F的窗口看门狗中有一个7位的递减计数器,它会在出现下述2种

4、情况之一时产生看门狗复位:1)当计数器的数值从0 x40减到0 x3F时2)当喂狗的时候如果计数器的值大于某一设定数值时,此设定数值在WWDG_CFR寄存器定义对于一般的看门狗,程序可以在它产生复位前的任意时刻刷新看门狗,但这有一个隐患,有可能程序跑乱了又跑回到正常的地方,或跑乱的程序正好执行了刷新看门狗操作,这样的情况下一般的看门狗就检测不出来了。,STM32窗口看门狗实验,ALIENTEK,8.2 窗口看门狗相关寄存器,例说STM32,控制寄存器(WWDG_CR),STM32窗口看门狗实验,ALIENTEK,例说STM32,可以看出,这里我们的WWDG_CR只有低八位有效,T6:0用来存储

5、看门狗的计数器值,随时更新的,每个看窗口看门狗计数周期(40962 WDGTB)减1。当该计数器的值从0X40变为0X3F的时候,将产生看门狗复位。 WDGA位则是看门狗的激活位,该位由软件置1,以启动看门狗,并且一定要注意的是该位一旦设置,就只能在硬件复位后才能清零了。,STM32窗口看门狗实验,ALIENTEK,例说STM32,配置寄存器(WWDG_CFR),STM32窗口看门狗实验,ALIENTEK,例说STM32,该位中的EWI是提前唤醒中断,也就是在快要产生复位的前一段时间(T6:0=0X40)来提醒我们,需要进行喂狗了,否则将复位!因此,我们一般用该位来设置中断,当窗口看门狗的计数

6、器值减到0X40的时候,如果该位设置,并开启了中断,则会产生中断,我们可以在中断里面向WWDG_CR重新写入计数器的值,来达到喂狗的目的。注意这里在进入中断后,必须在不大于113us的时间(PCLK1频率为36M且WDGTB为0的条件下)内重新写WWDG_CR,否则,看门狗将产生复位!,STM32窗口看门狗实验,ALIENTEK,例说STM32,状态寄存器(WWDG_SR) 该寄存器用来记录当前是否有提前唤醒的标志。该寄存器仅有位0有效,其他都是保留位。当计数器值达到40h时,此位由硬件置1。它必须通过软件写0来清除。对此位写1无效。即使中断未被使能,在计数器的值达到0X40的时候,此位也会被

7、置1。,STM32窗口看门狗实验,ALIENTEK,8.3 窗口看门狗配置步骤,例说STM32,1)使能WWDG时钟。 WWDG不同于IWDG,IWDG有自己独立的40Khz时钟,不存在使能问题。而WWDG使用的是PCLK1的时钟,需要先使能时钟。 2)设置WWDG_CFR和WWDG_CR两个寄存器 在时钟使能完后,我们设置WWDG的CFR和CR两个寄存器,对WWDG进行配置。包括使能窗口看门狗、开启中断、设置计数器的初始值、设置窗口值并设置分频数WDGTB等。,STM32窗口看门狗实验,ALIENTEK,例说STM32,3)开启WWDG中断并分组 在设置完了WWDG后,需要配置该中断的分组及

8、使能。这点通过我们之前所编写的MY_NVIC_Init函数实现就可以了。 4)编写中断服务函数 在最后,还是要编写窗口看门狗的中断服务函数,通过该函数来喂狗,喂狗要快,否则当窗口看门狗计数器值减到0X3F的时候,就会引起软复位了。在中断服务函数里面也要将状态寄存器的EWIF位清空。,STM32窗口看门狗实验,ALIENTEK,8.4 实验讲解,例说STM32,硬件设计: 窗口看门狗与独立看门狗一样,与外部电路基本没什么关系,全部在内部实现,但是考虑到指示STM32的状态,使用了2个外部的LED,DS0和DS1。其他的没有什么电路。 实验现象: 将代码下载到MiniSTM32后,可以看到DS0亮一下之后熄灭,紧接着DS1开始不停的闪烁。每秒钟闪烁5次左右。,STM32窗口看门狗实验,ALIENTEK,例说STM32,软件设计:wdg.c,STM32窗口看门狗实验,ALIENTEK,例说STM32,main函数,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 医学/心理学 > 医学试题/课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号