STM32
直播中

juju宇哥

8年用户 1379经验值
擅长:479809
私信 关注
[问答]

如何去使用STM32的窗口看门狗

STM32CubeMx基本配置有哪些?
如何使用STM32的窗口看门狗?

回帖(1)

陈秀春

2021-8-31 10:42:27
  STM32CubeMx开发之路—窗口看门狗
  运行环境
  Windows10
  STM32CubeMX Version 5.2.0
  Keil5(MDK5) Version 5.28.0.0
  简介
  本例程主要讲解如何使用STM32的窗口看门狗, 详情请参考官方的参考文档, 本教程教大家如何使用它。
  STM32CubeMx基本配置
  基础配置过程请参考 STM32CubeMx开发之路—配置第一个项目
  使用printf功能
  重定向printf的过程请参考 STM32CubeMx开发之路—3发送USART数据和printf重定向
  CubeMX配置
  查看时钟
  窗口看门狗挂载到PCLK1上面的:我的时钟是36MHZ
  
  修改配置
  原理 下面是官方的图,你有两种喂狗方式
  在刷新窗口喂狗
  打开窗口看门狗中断,在中断中喂狗(这是最后的喂狗机会)
  
  1 选择窗口看门狗
  2 选中Activated
  3 设置分频值psc、窗口寄存器的值window value、递减计数器刷新值counter
  
  计 数 频 率 = 36000000 p s c ∗ 4096 = 36000000 8 ∗ 4096 = 1098.6 H Z ( 记 一 次 数 需 要 时 间 约 910 u s ) 计数频率 = frac{36000000}{psc*4096} = frac{36000000}{8*4096} = 1098.6HZ(记一次数需要时间约910us) 计数频率=psc∗409636000000=8∗409636000000=1098.6HZ(记一次数需要时间约910us)
  超 时 时 间 = 记 一 次 数 需 要 时 间 ∗ ( c o u n t e r − 64 ) = 910 u s ∗ ( 127 − 64 ) ≈ 58 m s 超时时间 = 记一次数需要时间 * (counter - 64) = 910us * (127 - 64) ≈ 58ms 超时时间=记一次数需要时间∗(counter−64)=910us∗(127−64)≈58ms
  打开中断
  
  代码修改
  修改主函数
  
  在中断中喂狗(运行正常)
  
  《img widt 》
  在中断中不喂狗(无限重启)
  
  源码
  STM32F103rb_wdg_w.rar
举报

更多回帖

发帖
×
20
完善资料,
赚取积分