STM32窗口看门狗详解

描述

本文将介绍窗口看门狗,并通过按键模拟触发程序死机、进而触发提前唤醒中断、并复位程序。

①窗口看门狗介绍

②STM32CUBEMX配置工程文件

③代码实现

①窗口看门狗介绍

窗口看门狗用来监测由于不可预知的因素或者不可预知的逻辑条件导致程序脱离正常运行序列的软件故障。

窗口看门狗介绍之工作原理框图:

stm32cubemx

窗口看门狗介绍之配置寄存器:

预分频器用于将RCC传来的PCLK1时钟进行分频,配置寄存器中第7位第8位用来存放预分频器的预分频值,第0位至第6位用于存放窗口看门狗的窗口值,当计数器的值大于窗口值时喂狗会触发复位、即只有计数器的值在0x40与窗口值之间时喂狗不会触发程序复位;所以窗口值需要大于0x40、小于0x7f,否则窗口没有意义。

窗口看门狗介绍之控制寄存器:

寄存器第0至第6位用于存放计数器的计数值,计数值最大0x7f、当计数值降低到0x40时会触发提前唤醒中断,在提前唤醒中断里可以保存重要的数据或者报警,当寄存器第6位由1变0时会对程序进行复位。

②STM32CUBEMX配置工程文件

Step1:使能USART3用于调试

stm32cubemx

Step2:使能RCC时钟、配置时钟树

stm32cubemx

stm32cubemx

Step3:配置按键PA0为外部输入中断、设置中断优先级

stm32cubemx

stm32cubemx

Step4:使能窗口看门狗、配置分频数、计数值、窗口值,设置中断等级

stm32cubemx

计数值减小5花费1us,窗口值为95、计数值为127

stm32cubemx

Step5:配置GPIO控制led,用于提前唤醒中断里报警亮灯

stm32cubemx

Step6:生成工程

stm32cubemx

stm32cubemx

stm32cubemx

③代码实现

Step1:输出重定向,记得添加头文件

stm32cubemx

While后少了一个分号哈!!!

Step2:在窗口值以下喂狗

stm32cubemx

Step3:重定义提前唤醒函数

stm32cubemx

Step4:重定义外部中断函数

stm32cubemx

step5:编译、日志

stm32cubemx

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分