概述
关于看门狗,我觉得做单片机或许嵌入式开发的人员来说并不生疏,今日总结STM32F0看门狗的功用,F0的看门狗有两种:独立和窗口看门狗。
两种看门狗各有各的特色,应用在不同的场合,下面将别离简略总结一下独立和窗口看门狗的功用。
预备作业
关于看门狗的编程,主张我们预备F0的参考手册和数据手册,便利查阅相关常识,没有的请到ST官网或到我360云盘下载。
今日总结的软件工程是根据“TIM根本延时装备详细进程”修正而来,因而需求将该软件工程下载预备好。我每次都是供给整理好的软件工程供我们下载,可是,假如你是一位学习者,主张自己亲手一步一步操作。
看门狗原理
①IWDG独立看门狗
独立看门狗由内部低速时钟LSI供给计数时钟,8位分频,12位计数,需求守时喂狗(重载数值ReloadCounter),假如计数值减为0了,还没有重载数值,则会呼应复位事情。
②WWDG窗口看门狗
窗口看门狗由APB1(RCC_APB1Periph_WWDG)供给计数时钟,2位分频,7位计数,需求守时喂狗(更新计数值),假如计数值减为0x40了,还未更新计数值,则会呼应复位事情。
代码描绘
今日供给两种看门狗软件工程,下面别离来总结一下,首要解说装备的函数接口。
①IWDG独立看门狗
该函数坐落main.c文件上面;
重载数值的核算请结合上面的结构框图合作函数源代码,从函数中能够看的出来,只需0.5s。
运转效果:
喂狗最大时刻500ms(理论值),但内部低速时钟LSI存在差错,主张修正测验时刻:小于450,大于550;
小于450ms: 正常喂狗,串口距离打印“Running.。.”LED改变;
大于550ms: 喂狗超时,体系复位,串口打印“System Reset.。.”
②WWDG窗口看门狗
该函数坐落main.c文件上面;
这儿的时钟和上面IWDG的时钟不同,结合框图也看得出了通过分频之后计数的值也是核算的出来的。
运转效果:
喂狗最大时刻43ms(理论值),但串口打印需求一两毫秒,主张修正测验时刻:小于41,大于43;
小于41ms: 正常喂狗,串口距离打印“Running.。.”LED改变;
大于43ms: 喂狗超时,体系复位,串口打印“System Reset.。.”
③总结一下二者的差异
1)、IWDG运用内部低速时钟LSI,WWDG运用体系时钟APB1ENR
2)、IWDG没有中止,WWDG有中止
3)、IWDG是12位递减的。WWDG是7位递减的
4)、IWDG只要下限,WWDG有下限和上限
5)、IWDG最合适应用于那些需求看门狗作为一个在主程序之外,能够彻底独立作业,而且对时刻精度要求较低的场合。 WWDG最合适那些要求看门狗在准确计时窗口起效果的应用程序。
看门狗在长时间作业的产品中用到比较多,效果很简略,避免死机。看门狗的功用也可用于守时计数等。
阐明
或许你硬件芯片不是供给工程里边的芯片,可是STM32F0的芯片软件兼容性很好,能够适用于F0其他许多类型的芯片,乃至是F2、F4等芯片上(详细请看手册、或许亲身测验)。
本文章供给的软件工程是根据ST规范外设库为根底树立而成,而非运用STM32CubeMX树立工程。个人觉得运用ST的规范外设库合适与学习者,STM32CubeMX树立工程结构杂乱,关于学习者,特别是初学者估量会头疼。