[STM32MP1] 如何在STM32中配置和使用Watchdog定时器?

[复制链接]
 楼主| 合同圣诞节fy 发表于 2025-2-28 23:52 | 显示全部楼层 |阅读模式
STM32如何配置看门狗定时器来防止系统失效或死锁?


公羊子丹 发表于 2025-3-1 07:35 | 显示全部楼层
STM32MP1里有两种看门狗:独立看门狗(IWDG)和窗口看门狗(WWDG),你是想用哪个?两者的工作机制不太一样哦!
周半梅 发表于 2025-3-1 07:37 | 显示全部楼层
IWDG是独立于主时钟的,使用LSI时钟(约32kHz),即使主系统崩溃也能复位系统,这种方式适用于关键任务,你是打算用它来防止死机吗?
帛灿灿 发表于 2025-3-1 07:38 | 显示全部楼层
WWDG更适合检测系统异常,比如任务超时或者程序卡死,但它需要在特定的时间窗口内喂狗,否则会触发复位,你的应用场景适合这个吗?
童雨竹 发表于 2025-3-1 07:40 | 显示全部楼层
STM32MP1是Linux+M4的双核架构,你是想在Cortex-A7(Linux侧)还是M4(裸机/RTOS)上配置看门狗?两边的配置方式不同。
万图 发表于 2025-3-1 07:41 | 显示全部楼层
如果是Linux侧,可以用/dev/watchdog来控制看门狗,也可以使用systemd的watchdog服务,让系统自动喂狗,你试过这个方法吗?
Wordsworth 发表于 2025-3-1 07:42 | 显示全部楼层
M4侧可以直接用HAL库或者寄存器操作,比如HAL_IWDG_Refresh(),但要注意不要在低功耗模式下误触发复位。
Bblythe 发表于 2025-3-1 07:43 | 显示全部楼层
如果你的系统对异常恢复有严格要求,可以结合Bootloader,在复位后检测复位原因(RCC_CSR寄存器),然后决定是否进入安全模式。
Pulitzer 发表于 2025-3-1 07:45 | 显示全部楼层
有时候长时间的Flash写入或某些外设操作可能会导致喂狗超时,建议在关键代码里合理安排IWDG_Refresh()。
Uriah 发表于 2025-3-1 07:46 | 显示全部楼层
如果你的系统需要远程更新或者OTA升级,建议在升级过程中临时禁用看门狗,避免因超时复位导致升级失败。
Clyde011 发表于 2025-3-1 07:47 | 显示全部楼层
看门狗配置不能太随意,如果超时时间设得太短,可能会误复位,设得太长又起不到作用,建议根据系统任务调度周期来调整喂狗间隔!
失物招領 发表于 2025-3-14 01:12 | 显示全部楼层
你用cubemx直接配置就OK了,简单的很

您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

71

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

19

主题

71

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部