看门狗循环测试(窗口看门狗及实例)

4.2看门狗_窗口看门狗

本文将介绍窗口看门狗,并通过按键模拟触发程序死机、进而

触发提前唤醒中断、并复位程序。

①窗口看门狗介绍

②STM32CUBEMX配置工程文件

③代码实现

①窗口看门狗介绍

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

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

看门狗循环测试(窗口看门狗及实例)(1)

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

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

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

寄存器第0至第6位用于存放计数器的计数值,计数值最大0x7f、

当计数值降低到0x40时会触发提前唤醒中断,在提前唤醒中断

里可以保存重要的数据或者报警,当寄存器第6位由1变0时会对程序进行复位

②STM32CUBEMX配置工程文件

Step1:使能USART3用于调试

看门狗循环测试(窗口看门狗及实例)(2)

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

看门狗循环测试(窗口看门狗及实例)(3)

看门狗循环测试(窗口看门狗及实例)(4)

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

看门狗循环测试(窗口看门狗及实例)(5)

看门狗循环测试(窗口看门狗及实例)(6)

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

看门狗循环测试(窗口看门狗及实例)(7)

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

看门狗循环测试(窗口看门狗及实例)(8)

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

看门狗循环测试(窗口看门狗及实例)(9)

Step6:生成工程

看门狗循环测试(窗口看门狗及实例)(10)

看门狗循环测试(窗口看门狗及实例)(11)

看门狗循环测试(窗口看门狗及实例)(12)

③代码实现

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

看门狗循环测试(窗口看门狗及实例)(13)

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

Step2:在窗口值以下喂狗

看门狗循环测试(窗口看门狗及实例)(14)

Step3:重定义提前唤醒函数

看门狗循环测试(窗口看门狗及实例)(15)

Step4:重定义外部中断函数

看门狗循环测试(窗口看门狗及实例)(16)

step5:编译、日志

看门狗循环测试(窗口看门狗及实例)(17)

更多源码可邮箱发送、可留言邮箱,欢迎相互交流;谢谢!!!

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页