• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

谁能给我解释下窗口看门狗超时时间公式的由来?感谢

小白爱32 2018-10-15 浏览量:1997
STM32窗口看门狗 超时时间计算,这个公式怎么得出来的?TWWDG = TPCLK1 x 4096 x 2^WDGTB x (T[5:0] + 1); (ms)
我知道窗口看门狗的时钟是由HCLK/4096/分频值得出来的,怎么弄出来的这个公式呢?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 如果你理解窗口看门狗的时钟是由HCLK/4096/分频值得出来的,首先窗口看门狗是APB1分频来的,也就是TPCLK1。那么 定时时间=TPCLK1*4096*分频值*计数,首先WDGTB是寄存器WWDG_CFR的[8:7]位,00 01 10 11分别代表分频1 2 4 8,所以 2^WDGTB = 分频值。​然后寄存器WWDG_CFR的[6:0]是计数值,但是第6位一旦为0时​,就会产生复位,所以起作用只是[5:0]位,也就是T[5:0],​由前面可知第6位为0时复位,也就是0x40时不复位,0x3F时复位,所以要加上一个1。(第一次回帖子,表达逻辑有点不清楚,你结合参考手册来看)
    • 发布于 2018-10-15
    • 举报
    • 评论 2
    • 0
    • 0
小白爱32 回复了 136882ac6b2d00ad:大神,为什么定时时间=TPCLK1*4096*分频值*计数?? 回复
奇迹12 回复了 小白爱32:比如你频率为1000Hz,换成秒就是1/1000s如果分频为2的话,也就是实际频率是1000/2Hz,换成秒就是2/1000s然后计数就是你定时的时间,单片机会在这个基础上不停的的减。所以定时时间=原始频率转成以秒为单位*分频*计数 回复

其他答案 数量:8
  • TWWDG = TPCLK1 x 4096 x 2^WDGTB x (T[5:0] + 1); (ms) 

    你这个公式好像是错了,因为从单位上分析的话, TPCLK1 是频率的单位吧,后面 4096 x 2^WDGTB x (T[5:0] + 1) 这一串都是数字没有单位,所以推导出你 TWWDG 的单位是 频率 hz,所以你这个公式是错的。

    正确的应该是 ​TWWDG = (4096 x 2^WDGTB x (T[5:0] + 1)) /  TPCLK1​;       //(ms) 

    4096 是分频,WDGTB 是分频系数,T 是个计时器,所以 分子等于一次计时结束是多少个时钟,TPCLK1 是一秒钟有几个时钟,除完以后就是一次计时的时间。

    • 发布于2018-10-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 知晓mcu时钟周期,分频比,设定看门狗溢出时间,按照溢出时间=时钟周期*分频比计算
    • 发布于2018-10-16
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个是要看一下STM32的寄存器手册的,这种是寄存器的配法,每个寄存器的作用手册上面会说的比较清楚
    • 发布于2018-10-19
    • 举报
    • 评论 0
    • 0
    • 0

  • 这种是用根据你的时钟周期*设置参数来计算溢出时间
    • 发布于2018-10-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以参考https://blog.csdn.net/lbd321/article/details/71426115
    • 发布于2018-10-29
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以参考原子的看门狗章节,里面有详细的公式介绍
    • 发布于2018-11-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 建议参考芯片的数据手册,一般都会写具体的计算公式
    • 发布于2018-11-19
    • 举报
    • 评论 0
    • 0
    • 0

  • 参考一下这个时钟树的计算,可以找到公式
    • 发布于2018-11-22
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

谁能给我解释下窗口看门狗超时时间公式的由来?感谢