码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • IWDG与WWDG (学习)


    IWDG

    Independent watchdog,即独立看门狗

    IWDG:能产生系统复位信号的计数器

    1. 递减的计数器
    2. 时钟由独立的RC振荡器提供(可在待机和停止模式运行)
    3. 看门狗被激活后,当递减计数器计数到0x000时产生复位

    喂狗:在计数器计数到0之前,重装载计数器的值,防止复位

    系统复位

    除了时钟控制器的RCC_CSR寄存器中的复位标志位和备份区域中的寄存器以外,系统复位将复位所有寄存器至它们的复位状态。

    当发送以下任一事件时,产生一个系统复位:

    1. NRST引脚上的低电平(外部复位)
    2. 窗口看门狗计数终止(WWDG复位)
    3. 独立看门狗计数终止(IWDG复位)
    4. 软件复位(SW复位)
    5. 低功耗管理复位

    IWDG作用

    异常:外界电磁干扰或者自身系统(硬件或软件)异常,造成程序跑飞,如:陷入某个不正常的死循环,打断正常的程序运行。

    作用:主要用于检测外界电磁干扰,或硬件异常导致的程序跑飞问题。

    应用:在一些需要高稳定性的产品中,并且对时间精度要求较低的场合。

    独立看门狗是异常处理的最后手段,不可依赖,应在设计时尽量避免异常的发生。

    在这里插入图片描述
    CPU必须及时喂狗,否则系统复位重启!

    HAL库相关函数介绍

    • HAL_IWDG_Init():主要寄存器IWDG_PR/RL/KR,使能IWDG,设置预分频系数和重装载值等。
    • HAL_IWDG_Refresh:主要寄存器IWDG_KR,把重装载寄存器的值重载到计数器中,喂狗。
    typedef struct{
    	IWDG_TypeDef *Instance; //IWDG寄存器基地址
    	IWDG_InitTypeDef Init; //IWDG初始化参数
    }IWDG_HandleTypeDef;
    
    typedef struct
    {
    	uint32_t Prescaler; //预分频系数
    	uint32_t Reload; //重装载值
    }IWDG_InitTypeDef;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    验证不及时喂狗,系统将复位重启

    在这里插入图片描述

    WWDG

    Window Watchdog,即窗口看门狗。

    WWDG本质:能产生系统复位信号和提前唤醒中断的计数器。

    WWDG的特性:

    1. 递减的计数器
    2. 当递减计数器值从0x40减到0x3F时复位(64->63)
    3. 计数器的值大于W[6:0]值时喂狗会复位
    4. 提前唤醒中断(EWI):当递减计数器等于0x40时可产生

    喂狗:在窗口期内重装载计数器的值,防止复位。

    作用:用于监测单片机程序运行时效是否精准,主要检测软件异常。
    应用:需要精准监测程序运行时间的场合

    IWDG和WWDG的区别

    在这里插入图片描述

  • 相关阅读:
    Node.js 22 发布,原生支持 WebSocket 客户端
    输入支付密码加密流程,技术层面
    idea使用技巧、心得1
    微信小程序毕业设计-基于Java后端的微信小程序源码150套(附源码+数据库+演示视频+LW)
    微信小程序--》小程序全局配置和详解下拉刷新和上拉触底页面事件
    pytorch基础学习(2)concatenate,np.bincount,from_numpy,torch.sum
    Spring Cloud框架(原生Hoxton版本与Spring Cloud Alibaba)初级篇 ---- 服务注册与发现
    《单片机原理及应用》—定时器、串行通信和中断系统
    如何让vivado仿真结果显示具体数值
    优化器scipy.optimize参考指南
  • 原文地址:https://blog.csdn.net/Caramel_biscuit/article/details/133798914
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号