Stm32看门狗(开始于2021-07-19)

Stm32看门狗??

1.概述:

  • 独立看门狗:喂狗时间必须在0之前,否则计数器下降到0后,产生复位信 ;
  • 窗口看门狗:喂狗时间必须在CFR寄存器(我们设置的窗口上限),和0x3F(窗口下限)之间(即在CR寄存器的第7位b6*(T6)*减小到零之前),否则(上限之前,或以达下限)均会产生复位信 。
  • 喂狗:即重新设置递减计数器CNT的值,也就是手册时序图中的”更新”(CNT).
  • 上窗口比较触发: 当我们喂狗时,比较器会将当前(未写入时的)CNT的值与CFR低7位的值进行比较,查看是否超前喂狗.

2.独立看门狗:

1)原理简介及寄存器:

(1)框图:

IWDG_PR;WDG_RLR:

只有在KR写入0x5555取消写保护后才可以设置 PR[2:0] (预分频系数) ,RLR[11:0] (低十二位即重装载值)。

PR[2:0] 的预分频系数配置如下:

3.窗口看门狗:

1)原理简介及寄存器:

(1)框图:

  • WWDG_CFR:

    • 位9:提前唤醒中断使能;使能后在达到下窗口的最后一个周期前在进入看门狗唤醒中断函数用于提醒喂狗.
    • 位8,7:决定预分频系数,但在分频前进入窗口看门狗的时间脉冲均是由APB1的36MHz/4096.
    • 低7位[6:0]:用于设定上窗口值**(注意:上窗口值只有7位:最大为 0x7F , 最小必须大于 0x3F (系统设定的下窗口值))**
  • WWDG_CR:

    • 位7:看门狗使能位;
    • 低7位[6:0]:6位递减计算器CNT,开启看门狗后,对其进行写(刷新)即为喂狗。
  • WWDG_SR:

    • 只有0位有效,为WWDG的提前唤醒中断的标志位,需由软件清零。

2)相关时间计算:

窗口下限超时时间计算:
T w w d g = T [ 5 : 0 ] + 1 F p c l k 1 4096 ? 2 分 频 系 数 = 4096 ? 2 分 频 系 数 ? T [ 5 : 0 ] + 1 F p c l k 1 ( 通 常 是 36 M H z ) = ( = 4096 ? 2 分 频 系 数 ? 0 x 40 F p c l k 1 ( 通 常 是 36 M H z ) ) Twwdg = cfrac{T[5:0]+1}{cfrac{Fpclk1}{4096* 2^{分频系数} }} =frac{{4096* 2^{分频系数} }*{T[5:0]+1}}{Fpclk1(通常是36MHz)}=(=frac{{4096* 2^{分频系数} }*{0x40}}{Fpclk1(通常是36MHz)}) Twwdg=4096?2Fpclk1?T[5:0]+1?=Fpclk1(36MHz)4096?2?T[5:0]+1?=(=Fpclk1(36MHz)4096?2?0x40?)

3)库函数操作:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年6月17日
下一篇 2021年6月17日

相关推荐