赞
踩
一、配置STM32cubeMX工程
分频:由PCLK1分频给计数器寄存器提供时钟
窗口值:它是用来设置窗口看门狗的上窗口值的
计数器重装载:我是这么理解的,相当于每次喂狗的值
中断 :开启了中断以后,会在计数器出现0x40时开启中断事件
二、WWDG的技术讲解
由名字可以看出来,窗口看门狗是在某一个范围进行的喂狗操作。
如图所示,CFR就是我们设置的上窗口值,而CR的低六位是我们的递减计数器。由图可以看出我们的CR寄存器T6必须要为1,否则我们的系统会一直进行复位,也就是说我们的CR寄存器必须大于0x40(64)。而我们的最大值是127,对应我们的上窗口CFR最大也只能是127。而我们的窗口范围也就是CFR-64,而且CFR必须要比CR大,否则将没有窗口的存在。
这里注意一点,就算我们没有开启看门狗,他的计数器依旧在进行计数,因为它之接搭载在了PCLK1上面
数据手册中有一张这个图,由图可以看出,喂狗只能在CFR和0x3F之间进行喂狗,在此外是无效的。
三、HAL库函数的调用
if((hwwdg.Instance->CR & 0x7f) < 127 && (hwwdg.Instance->CR & 0x7f) > 64)
HAL_WWDG_Refresh(&hwwdg); //在可刷新的范围内进行喂狗
这个函数和IWDG的函数是差不多的,这里相当于直接对CR寄存器给赋值了。就不做过多介绍,可以翻一翻第六章IWDG。
四、HAL库实现控制WWDG相关寄存器的方法
一个结构体,其中有两个结构体成员,第一个对应到了实际的寄存器地址(至于怎么赋值到实际地址的可以去看一下第一章GPIO),是控制它的根本。而第二个则是初始化的设置,在cubemx中所设置的参数对应的赋值给它们了。
而喂狗的函数则是直接将初始化中的值给到了CR寄存器。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。