当前位置: 首页 > news >正文

STM32F103C8T6,窗口看门狗(WWDG)与独立看门狗(IWDG)详解

请添加图片描述

文章目录

  • 引言
  • 一、看门狗的基本概念
    • 工作原理:
  • 二、独立看门狗(IWDG)
    • 2.1 基本特性
    • 2.2 HAL库配置示例
    • 2.3 超时时间计算
  • 三、窗口看门狗(WWDG)
    • 3.1 基本特性
    • 3.2 HAL库配置示例
    • 3.3 时间参数计算
  • 四、WWDG与IWDG关键区别
  • 五、实际应用场景分析
    • 5.1 IWDG适用场景
    • 5.2 WWDG适用场景
    • 5.3 组合使用方案
  • 六、调试技巧与常见问题
    • 6.1 调试注意事项
    • 6.2 常见问题解决
  • 七、结语


引言

在嵌入式系统开发中,看门狗定时器是确保系统可靠性的关键组件。STM32F103C8T6提供了两种不同类型的看门狗:窗口看门狗(WWDG)和独立看门狗(IWDG)。本文将深入探讨它们的区别、工作原理、应用场景,并提供基于HAL库的实用代码示例。


一、看门狗的基本概念

看门狗定时器是一种特殊的硬件定时器,用于检测软件故障并自动复位系统。当主程序运行异常时,看门狗会强制系统复位,防止系统永久挂起。

工作原理:

  1. 看门狗计数器开始递减
  2. 程序需要在计数器归零前"喂狗"
  3. 若未及时喂狗,系统自动复位

二、独立看门狗(IWDG)

2.1 基本特性

  • 独立时钟源:使用内部低速时钟(LSI ≈40kHz),不依赖主时钟
  • 简单可靠:只有单一喂狗操作
  • 复位条件:计数器递减至0时触发复位
  • 应用场景:
    • 防止程序跑飞或死循环
    • 对时间精度要求不高的场合
    • 需要独立于主系统工作的场景

2.2 HAL库配置示例

include "stm32f1xx_hal.h"IWDG_HandleTypeDef hiwdg;void MX_IWDG_Init(void)
{hiwdg.Instance = IWDG;hiwdg.Init.Prescaler = IWDG_PRESCALER_32;   // 32分频hiwdg.Init.Reload = 4095;                  // 重载值(0-0xFFF)if (HAL_IWDG_Init(&hiwdg) != HAL_OK) {Error_Handler();
}// 在主循环中定期喂狗
void main(void)
{HAL_Init();SystemClock_Config();MX_IWDG_Init();while (1) {// 执行主要任务...HAL_Delay
http://www.xdnf.cn/news/1064431.html

相关文章:

  • all()函数和any()函数
  • 【机器学习四大核心任务类型详解】分类、回归、聚类、降维智能决策指南
  • 【投稿与写作】overleaf 文章转投arxiv流程经验分享
  • 开发语言本身只是提供了一种解决问题的工具
  • Windows 后渗透中可能会遇到的加密字符串分析
  • C++结构体初始化与成员函数实现语法详解
  • webpack+vite前端构建工具 -6从loader本质看各种语言处理 7webpack处理html
  • c#websocket心跳包自定义实现,支持异步操作的取消
  • RN(React Native)技术应用中常出现的错误及解决办法
  • 可理解性输入:洗澡习惯
  • 【设计模式】策略模式 在java中的应用
  • 《Redis》事务
  • idea2023+zulu-jdk+maven3.9.10
  • 【后端】负载均衡
  • 解决OSS存储桶未创建导致的XML错误
  • LLMs之MCP:excel-mcp-server的简介、安装和使用方法、案例应用之详细攻略
  • 5.3 VSCode使用FFmpeg库
  • 一,python语法教程.内置API
  • modelscope设置默认模型路径
  • python中学物理实验模拟:凸透镜成像和凹透镜成像
  • springboot通过独立事务管理器实现资源隔离与精准控制​
  • C++ 函数模板
  • JavaEE初阶第三期:解锁多线程,从 “单车道” 到 “高速公路” 的编程升级(一)
  • 【格与代数系统】偏序关系、偏序集与全序集
  • python的校园兼职系统
  • 5.2 Qt Creator 使用FFmpeg库
  • C++ 的设计模式
  • 一文详解归并分治算法
  • 逆向入门(16)程序逆向篇-Cabeca
  • Python列表常用操作方法