news 2026/4/17 17:24:16

简单理解:为什么嵌入式系统中看门狗(WDT)的时钟源配置函数调用一般选择 LSI 低速内部时钟

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
简单理解:为什么嵌入式系统中看门狗(WDT)的时钟源配置函数调用一般选择 LSI 低速内部时钟
WDT_SourceConfig(WDT_SOURCE_LSI); // 配置看门狗时钟源为LSI(内部低速时钟)

这行代码是嵌入式系统中看门狗(WDT)的时钟源配置函数调用,常见于 STM32、GD32、华大 HC32 等基于 ARM Cortex-M 内核的 MCU 驱动代码,核心作用是指定看门狗模块使用的时钟源(这里明确选择LSI低速内部时钟)—— 看门狗必须依赖稳定的时钟源才能计数,时钟源决定了看门狗的计时精度和工作稳定性。

以下是从「函数拆解→时钟源含义→配置逻辑→应用场景」的完整解析:

一、函数各部分含义(命名规范 + 核心作用)

部分作用说明
WDT_SourceConfig函数名(嵌入式驱动标准命名):-WDTWatchdog Timer(看门狗定时器);-Source:“时钟源”(指驱动看门狗计数的时钟信号);-ConfigConfigure(配置);- 整体含义:看门狗时钟源配置函数
WDT_SOURCE_LSI函数参数(宏定义常量):-WDT_SOURCE_:前缀,表明是 “看门狗时钟源” 相关宏;-LSILow-Speed Internal Clock(低速内部时钟);- 作用:指定看门狗使用 MCU 内部集成的低速时钟作为计时基准。

二、关键:LSI时钟是什么?(嵌入式时钟核心概念)

要理解这行代码,首先要明确LSI时钟的特性 —— 它是 MCU 内部自带的 “低速、低精度、独立供电” 时钟,核心参数(不同厂商 MCU 略有差异):

  • 频率:通常为32kHz 左右(如 STM32 的 LSI 是 32.768kHz,GD32 是 32kHz);
  • 供电:独立于系统主时钟(HSE/HSI)的供电域,部分 MCU 在系统低功耗模式下仍能工作;
  • 精度:中等(误差约 ±1%~±10%,受温度影响);
  • 核心优势:无需外部晶振,成本低、可靠性高(不依赖外部器件)。

对应的,看门狗常见的其他时钟源(宏定义形式):

时钟源宏定义含义适用场景
WDT_SOURCE_LSI低速内部时钟(如 32kHz)无外部晶振、低功耗、成本敏感场景
WDT_SOURCE_HSI高速内部时钟(如 16MHz)需高频计时、无外部晶振场景
WDT_SOURCE_HSE高速外部晶振(如 8MHz/25MHz)计时精度要求高的场景(需外部晶振)
WDT_SOURCE_PCLK1外设时钟(APB1 总线时钟)窗口看门狗(WWDG)常用(依赖主时钟)

三、函数的核心作用:为什么要配置LSI时钟源?

看门狗的 “溢出时间”(计数器从最大值减到 0 的时间)由时钟频率计数器重装载值共同决定:溢出时间 = 重装载值 / 时钟频率例如:LSI 频率 32kHz,重装载值 32000 → 溢出时间 = 32000 / 32000 = 1 秒。

选择LSI作为看门狗时钟源,核心原因是适配嵌入式系统的 “稳定监控” 需求

  1. 不依赖外部器件:LSI 是内部时钟,无需外接晶振(对比 HSE),减少硬件成本和故障点(外部晶振可能因振动、温湿度变化失效);
  2. 低功耗兼容:多数 MCU 的 LSI 在低功耗模式(如 STM32 的 STOP 模式)下仍能运行,看门狗可在系统休眠时继续监控,避免休眠时程序卡死无法复位;
  3. 满足看门狗精度需求:看门狗的核心目的是 “监控程序是否跑飞”,无需微秒级高精度计时(LSI 的 ±5% 误差完全可接受);
  4. 独立于主时钟:即使系统主时钟(如 HSI/HSE)故障(如倍频器异常),LSI 仍能正常工作,确保看门狗不会因主时钟失效而瘫痪。

四、函数的调用时机与完整流程

WDT_SourceConfig(WDT_SOURCE_LSI)是看门狗初始化的核心步骤之一,必须在 “使能时钟” 之后、“配置溢出时间 / 启动看门狗” 之前调用,完整初始化流程如下(以 STM32 独立看门狗 IWDG 为例):

// 1. 使能看门狗时钟(部分 MCU 需先使能 LSI 时钟) RCC->CSR |= RCC_CSR_LSION; // 使能 LSI 时钟 while (!(RCC->CSR & RCC_CSR_LSIRDY)); // 等待 LSI 时钟稳定 // 2. 配置看门狗时钟源为 LSI(当前函数调用) WDT_SourceConfig(WDT_SOURCE_LSI); // 3. 配置看门狗溢出时间(设置预分频系数、重装载值) WDT_SetPrescaler(WDT_PRESCALER_1); // 预分频系数=1(时钟频率不变) WDT_SetReloadValue(32000); // 重装载值=32000(LSI=32kHz 时,溢出时间=1秒) // 4. 使能看门狗中断(可选,溢出前触发中断提醒) WDT_ITConfig(ENABLE); // 5. 启动看门狗 WDT_Enable(); // 6. 主循环中定期喂狗 while (1) { WDT_FedDog(); // 重置计数器,避免溢出复位 // 业务逻辑... }

五、关键注意点(避免踩坑)

  1. 时钟源与看门狗类型匹配

    • 独立看门狗(IWDG):通常仅支持 LSI 时钟(部分 MCU 支持 HSI 分频);
    • 窗口看门狗(WWDG):通常支持 PCLK1 时钟(依赖主时钟),不支持 LSI;
    • 调用前需确认 MCU 手册:当前看门狗类型是否支持 LSI 时钟源。
  2. LSI 时钟需先使能并稳定:配置WDT_SOURCE_LSI前,必须先使能 LSI 时钟,且等待时钟就绪标志(LSIRDY)置 1,否则看门狗会因时钟未稳定导致计时异常(溢出时间不准)。

  3. 宏定义的厂商差异:不同厂商的时钟源宏定义可能不同(如部分 MCU 用IWDG_CLK_SOURCE_LSI而非WDT_SOURCE_LSI),但语义一致,需参考对应 MCU 的固件库手册。

  4. 低功耗模式下的兼容性:若系统需进入深度低功耗模式(如 STM32 的 STANDBY 模式),需确认 LSI 是否支持该模式 —— 部分 MCU 深度休眠时会关闭 LSI,导致看门狗停止工作。

总结

WDT_SourceConfig(WDT_SOURCE_LSI)的核心是将看门狗的计时基准指定为 MCU 内部的 LSI 低速时钟,是嵌入式看门狗初始化的关键步骤。其设计逻辑是 “优先保证看门狗的独立性和可靠性”,适配无外部晶振、低功耗、成本敏感的场景(如物联网传感器、工业控制模块),是嵌入式系统 “故障自恢复” 机制的重要组成部分。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 5:33:51

Dify React安全漏洞详解(一线大厂已中招,附修复验证工具包)

第一章:Dify React安全漏洞修复概述在现代前端应用开发中,React 作为主流框架被广泛应用于 Dify 等 AI 应用平台的构建。然而,随着功能复杂度提升,其暴露的安全风险也日益显著,包括 XSS 注入、不安全的依赖包、敏感信息…

作者头像 李华
网站建设 2026/4/18 3:36:55

如何用PPTist零基础制作专业级演示文稿?[特殊字符]

如何用PPTist零基础制作专业级演示文稿?🚀 【免费下载链接】PPTist 基于 Vue3.x TypeScript 的在线演示文稿(幻灯片)应用,还原了大部分 Office PowerPoint 常用功能,实现在线PPT的编辑、演示。支持导出PPT…

作者头像 李华
网站建设 2026/4/18 3:29:42

Dify处理超大Excel文件卡顿,10秒变1秒的秘诀竟然是这个?

第一章:Dify Excel 提取速度的现状与挑战在当前数据驱动的应用场景中,Dify 平台对 Excel 数据的提取效率直接影响到自动化流程的整体性能。尽管 Dify 支持多种数据源接入,但在处理大规模 Excel 文件时,其默认的提取机制仍面临响应…

作者头像 李华
网站建设 2026/4/18 3:25:50

Mac百度网盘加速终极方案:3分钟解锁会员级下载体验

还在为百度网盘在macOS上的蜗牛速度而抓狂吗?看着下载进度条几乎不动,剩余时间显示"超过1天",这种等待简直让人崩溃。今天,我要分享一个简单高效的解决方案,让你在3分钟内告别龟速下载,体验飞一般…

作者头像 李华
网站建设 2026/4/18 3:25:57

与其他TTS模型联用:构建混合语音生成系统的设想

与其他TTS模型联用:构建混合语音生成系统的设想 在短视频创作、影视后期和有声内容爆发的今天,语音合成技术早已不再是“能读出来就行”的基础工具。创作者真正需要的是——一句话就能让AI说出角色的情绪、节奏严丝合缝匹配画面、音色统一贯穿整部作品。…

作者头像 李华
网站建设 2026/4/18 7:43:54

Colab在线演示:无需本地GPU即可试用IndexTTS 2.0

Colab在线演示:无需本地GPU即可试用IndexTTS 2.0 你有没有遇到过这样的场景?想为一段短视频配上主角的声音,却发现请配音演员成本太高、档期难定;或者做虚拟主播时,希望声音既能保持固定音色,又能随情绪起伏…

作者头像 李华