打印
[其他ST产品]

stm32独立看门狗(IWDG)

[复制链接]
310|34
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kqh11a|  楼主 | 2023-7-30 15:33 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
0x01 IWDG简介
STM32F10xxx内置两个看门狗,(独立看门狗和窗口看门狗)可用来检测和解决由软件错误引起的故障;当计数器达到给定的超时值时,触发一个中断(仅适用于窗口型看门狗)或产生系统复位。

独立看门狗(IWDG)由专用的低速时钟(LSI)驱动,即使主时钟发生故障它也仍然有效。IWDG最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。

0x02 IWDG主要性能
● 自由运行的递减计数器
● 时钟由独立的RC振荡器提供(可在停止和待机模式下工作)
● 看门狗被激活后,则在计数器计数至0x000时产生复位

使用特权

评论回复
沙发
kqh11a|  楼主 | 2023-7-30 15:33 | 只看该作者
0x03 IWDG寄存器配置

使用特权

评论回复
板凳
kqh11a|  楼主 | 2023-7-30 15:33 | 只看该作者
1. 键寄存器(IWDG_KR)


使用特权

评论回复
地板
kqh11a|  楼主 | 2023-7-30 15:34 | 只看该作者
2. 预分频寄存器(IWDG_PR)



使用特权

评论回复
5
kqh11a|  楼主 | 2023-7-30 15:35 | 只看该作者
3. 重装载寄存器(IWDG_RLR)

使用特权

评论回复
6
kqh11a|  楼主 | 2023-7-30 15:35 | 只看该作者
IWDG配置分析
独立看门狗工作频率:40khz / 64分频 = 625hz
递减计数器减1的周期:1 / 625hz
独立看门狗的复位时间:625 * (1 / 625hz) = 1s

使用特权

评论回复
7
kqh11a|  楼主 | 2023-7-30 15:35 | 只看该作者
IWDG配置参考代码

#include "bsp_iwdg.h"

//使能IWDG,在40KHz LSI下,约等于每隔1s产生IWDG复位
void IWDG_Configuration(void)
{
        IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);  //使能或者失能对寄存器 IWDG_PR 和 IWDG_RLR 的写操作
        IWDG_SetPrescaler(IWDG_Prescaler_64);  //设置 IWDG 预分频值
        IWDG_SetReload(625);  //设置 IWDG 重装载值
        IWDG_ReloadCounter();  //按照 IWDG 重装载寄存器的值重装载 IWDG 计数器,喂狗
        IWDG_Enable();  //使能 IWDG
}

//喂狗,防止CPU复位
void IWDG_FeedDog(void)
{
        IWDG_ReloadCounter();
}

使用特权

评论回复
8
eefas| | 2023-8-4 13:23 | 只看该作者
STM32的独立开门狗怎么启用和停止

使用特权

评论回复
9
sdCAD| | 2023-8-4 14:07 | 只看该作者
独立看门狗的作用是在程序运行过程中,定时中断程序,以防止程序死循环或者出现其他问题。

使用特权

评论回复
10
tabmone| | 2023-8-4 15:38 | 只看该作者
可以通过检查重启原因标志位(如RCC_FLAG_IWDGRST)来判断是否由于IWDG超时而重启。

使用特权

评论回复
11
lihuami| | 2023-8-4 16:31 | 只看该作者
设计中,应考虑IWDG的触发时间与正常程序执行时间的关系,确保系统能够在IWDG超时之前完成必要的任务。

使用特权

评论回复
12
xiaoyaodz| | 2023-8-4 17:07 | 只看该作者
使用IWDG库函数来初始化IWDG模块。需要设定一个预分频值和重装载值。

使用特权

评论回复
13
pentruman| | 2023-8-4 20:31 | 只看该作者
STM32的独立看门狗(IWDG)是一种独立的定时器,由专门的低速总线进行驱动,可以在主时钟故障的情况下仍然可以工作。

使用特权

评论回复
14
robertesth| | 2023-8-4 20:42 | 只看该作者
要确保IWDG时钟源已配置。可以使用RCC(Reset and Clock Control)库函数来配置IWDG时钟源,一般选择LSI(Low-Speed Internal)时钟源。

使用特权

评论回复
15
claretttt| | 2023-8-4 21:04 | 只看该作者
看门狗为什么要进行8分频              

使用特权

评论回复
16
dspmana| | 2023-8-4 22:25 | 只看该作者
在程序的主循环中或关键任务的适当位置,使用IWDG库函数定期喂狗。

使用特权

评论回复
17
saservice| | 2023-8-5 13:00 | 只看该作者
独立看门狗时间计算需要注意什么              

使用特权

评论回复
18
febgxu| | 2023-8-5 14:37 | 只看该作者
IWDG的预分频和重装载值的设置取决于应用需求和系统稳定性要求,过小的数值会导致IWDG频繁触发复位,而过大的数值则可能无法及时检测到系统异常。

使用特权

评论回复
19
adolphcocker| | 2023-8-5 14:45 | 只看该作者
看门狗是一种辅助性的工具,不能完全依赖它来保证系统的稳定性和可靠性。

使用特权

评论回复
20
yeates333| | 2023-8-5 14:52 | 只看该作者
在STM32单片机中,可以使用独立看门狗来保证程序的正常运行。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

339

帖子

0

粉丝