完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
窗口看门狗简介
原理: 窗口看门狗(WWDG) 通常被用来监测由外部干扰或不可预见的逻辑条件造成的应用程序 背离正常的运行序列而产生的软件故障。除非递减计数器的值在 T6 位( WWDG-》CR 的第六位)变成 0 前被刷新,看门狗电路在达到预置的时间周期时,会产生一个 MCU 复位。在递减计数器达到窗口配置寄存器(WWDG-》CFR)数值之前, 如果 7 位的递减计数器数值(在控制寄存器中)被刷新, 那么也将产生一个 MCU 复位。这表明递减计数器需要在一个有限的时间窗口中被刷新。也就是说通过设置相关寄存器,设定其上限时间和下限时间,喂狗的时间不能过早也不能过晚。 窗口看门狗与独立看门狗比较 在于如果程序跑飞后又跑回正常或者跑乱的程序正好执行了刷新看门狗这样独立看门狗是不能检查到并复位芯片的,而窗口看门狗限制了喂狗的时间,如果程序跑飞并且在限制的时间段喂狗是非常困难的,从而保证在程序跑飞的情况下可以完成复位功能。 独立看门狗一般是由LSI驱动,即使主时钟发生故障它仍然有效,适用于对时间精度要求不高的场景下;窗口看门狗是由APB1时钟分频后得到的时钟驱动,适用于对时间精度要求较高的情况下。 窗口看门狗复位分析 在窗口看门狗的递减计数器递减到窗口配置寄存器配置的上窗口W[6:0]之前以及在下窗口0x3f之后都是不可以进行刷新递减计数器的(会产生复位动作),也就是我们所谓的喂狗动作。很显然我们只能在上窗口W[6:0]与下窗口0x3f之间进行喂狗。 时钟: 递减计数器时钟是来源PCLK1,由于PCLK1时钟频率过高再经过预分频器WDGTB后为递减计数器的时钟 WWDG_CR寄存器: T7是WDGA启动位-使能窗口看门狗,T0-6是6位递减计数器寄存器 WWDG_CFR寄存器: W0-6设置窗口看门狗上窗口值 窗口看门狗超时公式 以上便是窗口看门狗的简介,接下来我们将通过STM32CubeMx软件来配置窗口看门狗,实现窗口看门狗的中断功能来喂狗,通过 DS0 和 DS1 提示程序的运行状态。 第一步 创建工程 1. 打开STM32CubeMX软件,创建新工程 2. 选择自己所用的芯片 3. 我们这里初始化LED的GPIO用作提示验证软件是否正常运行。 4. 配置窗口看门狗初始化 5. 因为我们要用看门的中断功能来喂狗所以需要配置我们的中断。 6. 配置RCC以备使用外部时钟源。 7. 配置时钟树 8. 设置工程名称、所用的软件编辑器和软件中堆栈的大小。 9. 配置所调用的HAL后,点击③处生成软件工程。 10. 打开软件工程wwdg.c文件查看初始化配置。 11.编写中断回调函数。 第二步 下载验证 将我们的工程编译完成后下载来验证是否完成我们本节的需求。(已完成功能的基本测试) |
|
|
|
只有小组成员才能发言,加入小组>>
4508个成员聚集在这个小组
加入小组3334 浏览 0 评论
航顺(HK)联合电子发烧友推出“近距离体验高性能Cortex-M3,免费申请价值288元评估板
4262 浏览 1 评论
4289 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 18:51 , Processed in 0.636204 second(s), Total 74, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号