STM32窗口看门狗实验_第1页
STM32窗口看门狗实验_第2页
STM32窗口看门狗实验_第3页
STM32窗口看门狗实验_第4页
STM32窗口看门狗实验_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、-CFR)数值之前,如果7位的递减计数器数值(在控制寄存器中)被刷新, 那么也将产生一个MCU复位。这表明递减计数器需要在一个有限的时间窗口中被刷新。他们的关系可以用下图来说明:2022/9/153ALIENTEK例说STM32上图中,T6:0就是WWDG_CR的低七位,W6:0即是WWDG-CFR的低七位T6:0就是窗口看门狗的计数器,而W6:0则是窗口看门狗的上窗口,下窗口值是固定的(0X40)。当窗口看门狗的计数器在上窗口值之外被刷新,或者低于下窗口值都会产生复位。 上窗口值(W6:0)是由用户自己设定的,根据实际要求来设计窗口值,但是一定要确保窗口值大于0X40,否则窗口就不存在了。窗

3、口看门狗的超时公式如下:Twwdg=(40962WDGTB(T5:0+1) /Fpclk1;其中:Twwdg:WWDG超时时间(单位为ms)Fpclk1:APB1的时钟频率(单位为Khz)WDGTB:WWDG的预分频系数T5:0:窗口看门狗的计数器低6位2022/9/154ALIENTEK例说STM32根据上面的公式,假设Fpclk1=36Mhz,那么可以得到最小-最大超时时间表如下表所示:总结: STM32F的窗口看门狗中有一个7位的递减计数器,它会在出现下述2种情况之一时产生看门狗复位:1)当计数器的数值从0 x40减到0 x3F时2)当喂狗的时候如果计数器的值大于某一设定数值时,此设定数

4、值在WWDG_CFR寄存器定义对于一般的看门狗,程序可以在它产生复位前的任意时刻刷新看门狗,但这有一个隐患,有可能程序跑乱了又跑回到正常的地方,或跑乱的程序正好执行了刷新看门狗操作,这样的情况下一般的看门狗就检测不出来了。2022/9/155ALIENTEK8.2 窗口看门狗相关寄存器例说STM32控制寄存器(WWDG_CR)2022/9/156ALIENTEK例说STM32可以看出,这里我们的WWDG_CR只有低八位有效,T6:0用来存储看门狗的计数器值,随时更新的,每个看窗口看门狗计数周期(40962 WDGTB)减1。当该计数器的值从0X40变为0X3F的时候,将产生看门狗复位。WDGA

5、位则是看门狗的激活位,该位由软件置1,以启动看门狗,并且一定要注意的是该位一旦设置,就只能在硬件复位后才能清零了。2022/9/157ALIENTEK例说STM32配置寄存器(WWDG_CFR)2022/9/158ALIENTEK例说STM32该位中的EWI是提前唤醒中断,也就是在快要产生复位的前一段时间(T6:0=0X40)来提醒我们,需要进行喂狗了,否则将复位!因此,我们一般用该位来设置中断,当窗口看门狗的计数器值减到0X40的时候,如果该位设置,并开启了中断,则会产生中断,我们可以在中断里面向WWDG_CR重新写入计数器的值,来达到喂狗的目的。注意这里在进入中断后,必须在不大于113us

6、的时间(PCLK1频率为36M且WDGTB为0的条件下)内重新写WWDG_CR,否则,看门狗将产生复位!2022/9/159ALIENTEK例说STM32状态寄存器(WWDG_SR)该寄存器用来记录当前是否有提前唤醒的标志。该寄存器仅有位0有效,其他都是保留位。当计数器值达到40h时,此位由硬件置1。它必须通过软件写0来清除。对此位写1无效。即使中断未被使能,在计数器的值达到0X40的时候,此位也会被置1。 2022/9/1510ALIENTEK8.3 窗口看门狗配置步骤例说STM321)使能WWDG时钟。WWDG不同于IWDG,IWDG有自己独立的40Khz时钟,不存在使能问题。而WWDG使

7、用的是PCLK1的时钟,需要先使能时钟。2)设置WWDG_CFR和WWDG_CR两个寄存器在时钟使能完后,我们设置WWDG的CFR和CR两个寄存器,对WWDG进行配置。包括使能窗口看门狗、开启中断、设置计数器的初始值、设置窗口值并设置分频数WDGTB等。2022/9/1511ALIENTEK例说STM323)开启WWDG中断并分组在设置完了WWDG后,需要配置该中断的分组及使能。这点通过我们之前所编写的MY_NVIC_Init函数实现就可以了。4)编写中断服务函数在最后,还是要编写窗口看门狗的中断服务函数,通过该函数来喂狗,喂狗要快,否则当窗口看门狗计数器值减到0X3F的时候,就会引起软复位了。在中断服务函数里面也要将状态寄存器的EWIF位清空。 2022/9/1512ALIENTEK8.4 实验讲解例说STM32硬件设计:窗口看门狗与独立看门狗一样,与外部电路基本没什么关系,全部在内部实现,但是考虑到指示STM32的状态,使用了2个外部的LED,DS0和DS1。其他的没有什么电路。实验现象:将代码下载到MiniSTM32后,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论