• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

【STM32CubeMx入门教程】——WatchDog详解

      CubeMx的大部分功能的配置都是在Pinout & Configuration选项卡中完成,而所有的功能都被分为几大类,这一篇我们主要来看一下SystemCore部分的看门狗功能配置。

      STM32看门狗分为两种:WWDG(窗口看门狗)和IWDG(独立看门狗):

      IWDG:被称为独立看门狗,配置简单且用途广泛。独立的意思是:它是由独立的时钟驱动。

      IWDG配置:

点击Generate Code,生成新的代码:

HAL_IWDG_Init函数API 来自于HAL库文件:

全部回复(10)
正序查看
倒序查看
鲁珀特
LV.4
2
2021-07-02 16:39

曾经因为时钟树的问题导致喂狗失败,我到现在还记得,哈哈。

0
回复
2021-07-12 11:27
@鲁珀特
曾经因为时钟树的问题导致喂狗失败,我到现在还记得,哈哈。

记忆犹新啊,那些自己给自己挖过的坑,哈哈。

0
回复
2021-07-13 10:02

接下来,我们继续来聊一聊WWDG看门狗(也叫做窗口看门狗),首先这个看门狗并不常用,也可能是我没有找到适合这个WWDG的应用场景。上面已经很详细的聊了关于IWDG的相关内容,再去看WWDG的时候,就可以有对比性的去分析;

WWDG和IWDG的区别:

1.他们的驱动时钟不同,WWDG是由APB1外设时钟进行驱动的,在CubeMx的时钟树上并没有体现。

2.WWDG被称为窗口看门狗,也就是说他不光有下限,还有一个上限,也就是你只有在中间的位置进行喂狗才可以,目前真搞不清楚,他为啥要这样子设计,可能我真的没有领悟到他的用武之地。

3.WWDG带了一个中断,是在下限即将被复位之前触发中断,大部分中断的操作可能就是喂狗。

0
回复
#回复内容已被删除#
5
2021-07-13 10:18
@程序小白
接下来,我们继续来聊一聊WWDG看门狗(也叫做窗口看门狗),首先这个看门狗并不常用,也可能是我没有找到适合这个WWDG的应用场景。上面已经很详细的聊了关于IWDG的相关内容,再去看WWDG的时候,就可以有对比性的去分析;WWDG和IWDG的区别:1.他们的驱动时钟不同,WWDG是由APB1外设时钟进行驱动的,在CubeMx的时钟树上并没有体现。2.WWDG被称为窗口看门狗,也就是说他不光有下限,还有一个上限,也就是你只有在中间的位置进行喂狗才可以,目前真搞不清楚,他为啥要这样子设计,可能我真的没有领悟到他的用武之地。3.WWDG带了一个中断,是在下限即将被复位之前触发中断,大部分中断的操作可能就是喂狗。

首先看一下窗口看门狗的内部实现机制:

0
回复
2021-07-13 11:04
@程序小白
首先看一下窗口看门狗的内部实现机制:[图片]

窗口看门狗上限和下限值,以及可以喂狗的区间(喂狗和刷新窗口是一个概念):

0
回复
2021-07-13 11:14
@程序小白
窗口看门狗上限和下限值,以及可以喂狗的区间(喂狗和刷新窗口是一个概念):[图片]

如何利用CubeMx配置WWDG功能:

0
回复
wrta
LV.2
9
2021-07-14 16:18

看;了你的资料想学习ARM了,感谢资料,

0
回复
2021-07-16 14:21
@wrta
看;了你的资料想学习ARM了,感谢资料,

加油啊,一起来学习。

0
回复
pt-ldy
LV.2
11
2021-08-04 14:09

       曾经在一个ARM9芯片的Linux操作系统启动时,通电一开机运行到10秒钟时,就会反复自动重启。原来在Linux系统启动好之前,没有关闭看门狗,导致系统自动重启。

0
回复