[STM32 ]内部独立看门狗IWDG

本文介绍了STM32中的独立看门狗和窗口看门狗,强调了其防止程序异常复位的重要作用。看门狗工作原理是通过计数器递减,若未及时重装则触发复位。调试时,为避免内部看门狗复位,可调整喂狗周期。在进行内部FLASH操作时,需注意避免因总线占用导致喂狗超时。外部看门狗可通过稳定RST电平防止调试时复位。关注公众号获取更多原创内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看门狗大家应该都不陌生,STM32内部带有独立看门狗和窗口看门狗两种;其中独立看门狗依赖于内部的晶振LSI进行工作,窗口看门狗依赖于系统时钟工作;

看门狗的作用,防止程序跑飞无法实现自复位而存在;如果没有看门狗,程序挂掉,可能需要去给MCU下电,重新上电才能继续工作,由此可见,看门狗在一个系统中的地位是举足轻重的。

操作很简单,在重装值减到0之前,把寄存器值重装一下即可,让寄存器值始终大于0;

1、工作原理简介

当通过对关键字寄存器 (IWDG_KR) 写入值 0xCCCC 启动独立看门狗时,计数器开始从复位 值 0xFFF 递减计数。当计数器计数到终值 (0x000) 时会产生一个复位信号(IWDG 复位)。任何时候将关键字 0xAAAA 写到 IWWDG_KR 寄存器中,IWDG_RLR 的值就会被重载到计 数器,从而避免产生看门狗复位。

2、喂狗周期范围

图片

3、设计思考,为什么在线调试MCU时,MCU不复位呢?

IWDG:重载寄存器 (IWDG_RLR)重装值没有减到0;

引申一个话题:外部看门狗,在调试时如何保证不复位?

可以使用Jlink把RST的电平稳住,不让看门狗芯片拉低RST电平;

4、IWDG引发的常见问题

内部FLASH擦写周期大于IWDG的喂狗周期;

因为内部FLASH操作时,是使用总线的方式操作寄存器,总线处于被占用状态,在完成FLASH指令操作前,无法做出任何动作,导致喂狗信号发不出去,喂狗超时,MCU复位;当年就吃过这个亏,主要针对128KB的扇区块擦除而言,大概需要800ms;IWDG周期最好设置在1S以上;

外部看门狗1.6S周期,不存在这个问题。
欢迎关注微信公众号,更多原创等你。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值