STM32CubeMx开发之路—15窗口看门狗

本教程详细讲解了如何使用STM32的窗口看门狗功能,包括配置步骤、工作原理及代码实现,通过实例演示了在中断中喂狗的正确方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


!!! 本文已同步到码云 - 点击此链接获取最新 - 可进入码云提交修改 !!!


附件

源码已放到码云 ! ! ! ( 请点击文首链接进入仓库 )


运行环境

  • 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) =psc409636000000=8409636000000=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 =(counter64)=910us(12764)58ms


  • 打开中断

代码修改

  • 修改主函数

  • 在中断中喂狗(运行正常)

  • 在中断中不喂狗(无限重启)

备注


评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iot 小胡

从未指望过会有人打赏...

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值