STM32CubeMx开发之路—窗口看门狗
附件
源码仓库: 码云仓库
运行环境
Windows10STM32CubeMXVersion 5.2.0Keil5(MDK5)Version 5.28.0.0
简介
本例程主要讲解如何使用STM32的窗口看门狗, 详情请参考官方的参考文档, 本教程教大家如何使用它.
STM32CubeMx基本配置
基础配置过程请参考STM32CubeMx开发之路—配置第一个项目
使用printf功能
重定向printf的过程请参考STM32CubeMx开发之路—3发送USART数据和printf重定向
CubeMX配置
查看时钟
- 窗口看门狗挂载到PCLK1上面的:我的时钟是36MHZ
修改配置
- 原理下面是官方的图,你有两种喂狗方式
- 在刷新窗口喂狗
- 打开窗口看门狗中断,在中断中喂狗(这是最后的喂狗机会)
1选择窗口看门狗2选中Activated3设置分频值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
- 打开中断
代码修改
- 修改主函数
- 在中断中喂狗(运行正常)
- 在中断中不喂狗(无限重启)