STM32 看门狗学习笔记

发布者:书香门第最新更新时间:2019-05-22 来源: eefocus关键字:STM32  看门狗  学习笔记 手机看文章 扫描二维码
随时随地手机看文章

STM32 有两个看门,一个是独立看门狗,一个是窗口看门狗.这里先说独立看门狗.


以单片机为核心的微型计算机系统中,单片机经常会受到来自外界电磁场的干扰。


造成程序跑飞,只是程序的正常运行状态被打断而进入死循环,从而使单片机控制的系统无法正常工作。看门狗就是一种专门用于检测单片机程序运行状态的硬件结构。

独立看门狗的特性是,要利用片内的40k RC振荡器作为时钟据(说这个RC是相当的不准),优点就是,即使CPU主晶振

停了,即使CPU进入了休眠模式,狗也可以生效.当CPU进入休眠模式,并且是深度休眠的时候,这个看门狗可以作为一个CPU 的定时唤醒闹钟,以达到超低功耗的同时还会定时醒来.看门狗由于最大可以分频到256,看门狗定时器最大可以设置到0xfff,所以最最长的喂狗时间是26秒.....用于CPU的唤醒恰到好处。


利用公式Tout=((4×2^prer) ×rlr) /40


其中Tout 为看门狗溢出时间(单位为ms);prer 为看门狗时钟预分频值(IWDG_PR 值),

范围为0~7;rlr 为看门狗的重装载值(IWDG_RLR 的值);


利用公式可以计算出看门狗的溢出时间,只要在溢出时间内喂狗的话,就可以保证程序不跑飞掉。其中看门狗的重装载值rlr可以自己设置(范围0——0xfff),看门狗时钟预分频值(范围0——7).


首先  可以查阅stm32的使用手册有这样一幅图


当你设置为32分频时,则时钟就变为1.25KHz  此时也就是说计数器加1或者减1所花费的最短时间是(1/1.25)=0.8ms,因此如果设置加载值为349,则喂狗的最长时间应该是350*(1/1.25)=280ms

注意此处都是最长  最短  并不是确切的值  这些时间是按照40kHz 时钟给出。实际上,MCU内部的RC频率会在30kHz 到60kHz 之间变化。此外,即使RC振荡器的频率是精确的,确切的时序仍然依赖于APB接口时钟与RC振荡器时钟之间的相位差,因此总会有一个完整的RC周期是不确定的。  

通过对LSI进行校准可获得相对精确的看门狗超时时间。


void IWDG_Configuration(void)

{

 /* 写入0x5555,用于允许狗狗寄存器写入功能 */

 IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);

 

 /* 狗狗时钟分频,40K/256=156HZ(6.4ms)*/

 IWDG_SetPrescaler(IWDG_Prescaler_256);

 

 /* 喂狗时间 5s/6.4MS=781 .注意不能大于0xfff*/

 IWDG_SetReload(781);

 

 /* 喂狗*/

 IWDG_ReloadCounter();

 

 /* 使能狗狗*/

 IWDG_Enable();

}


关键字:STM32  看门狗  学习笔记 引用地址:STM32 看门狗学习笔记

上一篇:stm32 备份寄存器 读写数据
下一篇:stm32 读写flash 学习笔记

推荐阅读最新更新时间:2024-11-10 17:27

STM32指针的理解
指针的定义 : 自己总结为,指针是用来存放某种类型变量的地址的变量 比如 unit8 * p = 0x5555 5555 指针p 表示用来存放 unit8类型变量的地址的变量 *指针是变量 *指针是存放地址的变量 *指针是存放某种类型变量的地址的变量 百度上定义说: 它的值直接指向(points to)存在电脑存储器中另一个地方的值。 上例子中 *p 就表示0x5555 5555这个地址中存放的数 指针定义的格式:(数据类型+星号)+变量名称 比如下面两个例子 int * xxx YYY * xxx 指针的含义: 此时xxx这个变量就成为一个指针,这个
[单片机]
学习笔记--C语言的预处理--条件编译
预处理名称意义 #define 宏定义 #undef 撤销已定义过的宏名 #include 使编译程序将另一源文件嵌入到带有#include 的源文件中 #if #else #elif #endif等条件编译 #line 改变当前行数和文件名称,它们是在编译程序中预先定义的标识符 命令的基本形式如下:#line number #error 编译程序时,只要遇到#error 就会生成一个编译错误提示消息,并停止编译 #pragma 为实现时定义的命令,它允许向编译程序传送各种指令例如,编译程序可能有一种选择,它支持对程序执行的跟踪。可用#pragma 语句指定一个跟踪选择。 条件编译 条件编译的功能使得我们
[单片机]
STM32的PVD、POR、PDR简介
先看一下这2张截自STM32参考手册的图片: 下面这张表截自STM32F103x8/B的数据手册,对上图的参数给出了具体数值: 下面对上面2张图和表格中的数据做一个简要的解释: 1)PVD = Programmable Votage Detector 可编程电压监测器 它的作用是监视供电电压,在供电电压下降到给定的阀值以下时,产生一个中断,通知软件做紧急处理。在给出表格的上半部分就是可编程的监视阀值数据。当供电电压又恢复到给定的阀值以上时,也会产生一个中断,通知软件供电恢复。供电下降的阀值与供电上升的PVD阀值有一个固定的差值,这就是表中的VPVDhyst(PVD迟滞)这个参数,通过列出的PVD阀值数据
[单片机]
<font color='red'>STM32</font>的PVD、POR、PDR简介
STM32的SYSTICK_Init()配置
void SYSTICK_Init(void) { /* SysTick end of count event each 1ms with input clock equal to 4.5MHz (HCLK/8, default) SysTick_SetReload(4500); /* Enable SysTick interrupt SysTick_ITConfig(ENABLE); /* Enable the SysTick Counter SysTick_CounterCmd(SysTick_Counter_Enable); } 系统时钟定时器的周期与驱动的时钟频率和Reload值相关。
[单片机]
stm32外设初始化和设置过程
1.主应用文件中声明PPP_InitTypeDef结构体变量。 例:GPIO_InitTypeDef GPIO_InitStructure; 2.为定义的结构体变量设置需要的值。 设置变量中所有的值:PPP_InitStructure.member1 = value1;PPP_InitStructure.member2 = value2;... OR: 定义时直接赋值:PPP_InitTypeDef PPP_InitStructure = {value1,value2,value3....}; 设置变量中部分值:PPP_StructInit(&PPP_InitStructure);//先对结构
[单片机]
浅谈QSPI的特点以及QSPI的三种工作模式
意法半导体STM32F7系列MCU采用高性能的ARM Cortex-M7核心,借助ST的ART Accelerator™和L1缓存,STM32F7微控制器可提供Cortex-M7内核的最高理论性能,而无论代码是从嵌入式闪存还是由外部存储器执行的:1082 CoreMark / 462 DMIPS在216 MHz f CPU。带有新外围设备的智能架构。可利用STM32系列丰富的外设资源来外扩SRAM芯片。STM32F7支持QSPI. 意法半导体MCU STM32F7系列释放了Cortex-M7内核,AXI和多AHB总线矩阵,用于互连内核,外围设备和存储器。具有高达2MB的嵌入式闪存,在某些设备上具有读-写功能。两个用于以太网的通
[单片机]
介绍一种使用MDK解除读保护的方法
经历过产品量产的同学应该都知道,芯片一般会在出厂时开启读保护:要么在代码中加入,要么在烧录程序后人工通过软件开启该功能,比如 STM32 ST-LINK Utility: 当然也可以使用该工具关闭读保护功能。 为了保证程序不被读取,大多数产品应该会直接在量产代码中加入该功能,但这样会导致一个麻烦的问题:无法正常调试。 每次下载后,如果代码出现问题,都需要在线调试,而你的代码为了不忘记,默认就是开启读保护功能的,所以每次下载后,如果发现问题,你可能要找一个工具,如 J-Flash 或者上面的软件负责关闭读保护,让我们的开发效率降低不少。 是否有更好的方法解除读保护呢? 今天给大家介绍一种使用 MDK 解除读保护的方法,毕竟 MD
[单片机]
介绍一种使用MDK解除读保护的方法
MSP430学习笔记3-PWM的产生
这个程序主要是利用定时器的比较输出功能来产生PWM波控制LED,定时器A的比较输出对应P2.3 P2.4,因此在程序的一开始需要设置比较匹配的工作模式,需要说明的是头文件中已经对各种模式给了详细的定义,不需要在去配置寄存器,程序较为简单,稍微扩展一下去控制舵机也很容易,大家自己分析。 /******************************************************* 程序功能:用从P2.3和P2.4输出的PWM波形驱动LED闪烁 ------------------------------------------------------- 拨码开关设置:将LED位拨至ON,其余拨至OFF 测试说明
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved