项目里面需要加一个独立看门狗,就上网了解了一下,具体原理后期有时间再分享,今天先简单分享一下使用方法。
第一步:CubeMX设置





第二步:Keil下主循环中喂狗

说明:在主函数中调用此函数,如果主程序正常运行,则喂狗函数会被循环执行到。如果程序异常跑飞,则喂狗函数不会被执行到,独立看门狗本质就是一个计时器(或者计数器),计时器(或者计数器)会一直加,直到超过我们设置的喂狗时间后复位单片机。
第三步:喂狗时间的计算
其实上面的两步已经实现了独立看门狗的功能,下面我们分析一下关于喂狗时间的计算。


上图是STM32手册的一张图,不同型号单片机的独立看门狗内部时钟可能不一样,有的是32Khz,我用的这款单片机是40Khz。

预分频系数和CubeMx里的第一项对应,时钟是40KHz,比如我选的8分频,就是实际用的频率是40/8=5KHz。时间是频率的倒数,那么此时也就是说计数器加1或者减1所花费的最短时间是(1/5)=0.2ms(Khz和s单位千分抵消了,所以最后时间单位是ms),因此如果设置加载值为2000,则喂狗的最长时间应该是2000*(1/5)=400ms。
我们和表格对比一下,8分频最短时间是0.2ms(计数器加1或者减1所花费的最短时间),我们最后的喂狗时间400ms也没有超过最长时间819.2ms。因此我们的设置OK。
具体的喂狗时间需要结合主程序代码运行时间综合设定。甚至对一些特殊时间段的考虑需要用到窗口看门狗WWDG。
下面我们看一下生成的Keil工程中关于设置的位置,如果需要修改时钟分频系数或者喂狗时间可以直接在Keil中修改:


网友高见 :


-
STM32
+关注
关注
2305文章
11120浏览量
371116 -
计时器
+关注
关注
1文章
434浏览量
34868 -
WWDG
+关注
关注
0文章
21浏览量
5970 -
独立看门狗
+关注
关注
0文章
26浏览量
4382 -
CubeMx
+关注
关注
0文章
31浏览量
1947
发布评论请先 登录
STM32中的独立看门狗和窗口看门狗是什么
stm32看门狗时间计算 独立看门狗和窗口看门狗的特性是什么
STM32看门狗配置(独立看门狗IWDG和窗口看门狗WWDG)
STM32中的独立看门狗和窗口看门狗
STM32中的独立看门狗和窗口看门狗

分享一下STM32基于CubeMX独立看门狗的使用方法
评论