981
3057
9533
技术达人
使用特权
三、WWDG功能描述
如果看门狗被启动(WWDG_CR寄存器中的WDGA 位被置1),并且当 7位(T[6:0])递减计数器从0x40 翻转到0x3F(T6位清零)时,则产生一个复位。如果软件在计数器值大于窗口寄存器中的数值时重新装载计数器,将产生一个复位。
看门狗框图
175605k4izx45y4ntc44ym.png.thumb.jpg (102.71 KB ) 下载附件 2021-7-8 15:33 上传
175605k4izx45y4ntc44ym.png.thumb.jpg (102.71 KB )
下载附件
2021-7-8 15:33 上传
四、如何编写看门狗超时程序
下图显示了装载到看门狗计数器(CNT)中的 6 位计数值和看门狗的延迟时间之间的线性关系(以 mS为单位)。此图可用来做为快速计算的参考,而未将时间的偏差考虑在内。如果需要更高的精度,可以使用下图提供的计算公式。
当写入 WWDG_CR 寄存器时,始终置 T6 位为1以避免立即产生一个复位。
窗口看门狗时序图
175606m4lqk0cxmcq6clok.jpg.thumb.jpg (95.35 KB ) 下载附件 2021-7-8 15:40 上传
175606m4lqk0cxmcq6clok.jpg.thumb.jpg (95.35 KB )
2021-7-8 15:40 上传
五、设置WWDG实验分析
· 实验内容简介
环境MM32L073PFMiniboard、MDK,设置WWDG,通过观察喂狗与不喂狗的复位现象。
· 实验代码分析
首先看main函数
175606bphkprk3l4pptzel.png.thumb.jpg (91.35 KB ) 下载附件 2021-7-8 15:44 上传
175606bphkprk3l4pptzel.png.thumb.jpg (91.35 KB )
2021-7-8 15:44 上传
先初始化一个串口,方便我们观察复位现象,然后通过函数Wwdg_reset_ON 进行设置WWDG。最后在循环里通过WWDG_SetCounter函数不停的喂狗。
175607ocg7m3clseescuup.png.thumb.jpg (76.25 KB ) 下载附件 2021-7-8 15:44 上传
175607ocg7m3clseescuup.png.thumb.jpg (76.25 KB )
在函数Wwdg_reset_ON中设置窗口值,和计数器的初值。
· 实验现象
1、当注释掉喂狗函数时,通过串口在不断打印可以看出,MCU一直在复位。
2、当不注释喂狗函数时,串口只打印一次,MCU没有复位。
发表回复 本版积分规则 回帖后跳转到最后一页
7
扫码关注 21ic 官方微信
扫码关注嵌入式微处理器
扫码关注21ic项目外包
扫码关注21ic视频号
扫码关注21ic抖音号
本站介绍 | 申请友情链接 | 欢迎投稿 | 隐私声明 | 广告业务 | 网站地图 | 联系我们 | 诚聘英才 | 论坛帮助
京公网安备 11010802024343号