Stm32看门狗(开始于2021-07-19)「建议收藏」

Stm32看门狗(开始于2021-07-19)「建议收藏」Stm32看门狗????1.概述:独立看门狗:喂狗时间必须在0之前,否则计数器下降到0后,产生复位信号;窗口看门狗:喂狗时间必须在CFR寄存器(我们设置的窗口上限),和0x3F(窗口下限)之间(即在CR寄存器的第7位b6*(T6)*减小到零之前),否则(上限之前,或以达下限)均会产生复位信号。喂狗:即重新设置递减计数器CNT的值,也就是手册时序图中的”更新”(CNT).上窗口比较触发:当我们喂狗时,比较器会将当前(未写入时的)CNT的值与CFR低7位的值进行比较,查看是否超前喂狗.2.独立

大家好,又见面了,我是你们的朋友全栈君。

Stm32看门狗?

1.概述:

  • 独立看门狗:喂狗时间必须在0之前,否则计数器下降到0后,产生复位信号;
  • 窗口看门狗:喂狗时间必须在CFR寄存器(我们设置的窗口上限),和0x3F(窗口下限)之间(即在CR寄存器的第7位b6*(T6)*减小到零之前),否则(上限之前,或以达下限)均会产生复位信号。
  • 喂狗:即重新设置递减计数器CNT的值,也就是手册时序图中的”更新”(CNT).
  • 上窗口比较触发: 当我们喂狗时,比较器会将当前(未写入时的)CNT的值与CFR低7位的值进行比较,查看是否超前喂狗.

2.独立看门狗:

1)原理简介及寄存器:

(1)框图:

在这里插入图片描述

(2)相关寄存器:

共四个寄存器:IWDG_KR*(Key Register)/ PR(Prescaler Register)* /RLR*(ReLoad Register)/SR(State Register)*

IWDG_KR:

在这里插入图片描述

IWDG_PR;WDG_RLR:

只有在KR写入0x5555取消写保护后才可以设置 PR[2:0] (预分频系数) ,RLR[11:0] (低十二位即重装载值)。

PR[2:0] 的预分频系数配置如下:

在这里插入图片描述

IWDG_SR:该位由硬件控制。

2)溢出时间计算:

  • IWDG的时钟来源:LSI*(内部低速时钟)*不精确,可大概认为40kHz

  • 溢出时间( 即每次重装载(往KR中写0xAAAA喂狗)到复位的时间):
    T i w d g = R L R L S I P R 预 分 频 因 子 = P R 预 分 频 因 子 ∗ R L R L S I Tiwdg = \cfrac{RLR}{\cfrac{LSI}{PR预分频因子}}= \cfrac{PR预分频因子*RLR}{LSI} Tiwdg=PRLSIRLR=LSIPRRLR

3)库函数操作:

在这里插入图片描述

3.窗口看门狗:

1)原理简介及寄存器:

(1)框图:

在这里插入图片描述

(2)相关寄存器介绍:

在这里插入图片描述

  • WWDG_CFR:

    • 位9:提前唤醒中断使能;使能后在达到下窗口的最后一个周期前在进入看门狗唤醒中断函数用于提醒喂狗.
    • 位8,7:决定预分频系数,但在分频前进入窗口看门狗的时间脉冲均是由APB1的36MHz/4096.
    • 低7位[6:0]:用于设定上窗口值**(注意:上窗口值只有7位:最大为 0x7F , 最小必须大于 0x3F (系统设定的下窗口值))**
  • WWDG_CR:

    • 位7:看门狗使能位;
    • 低7位[6:0]:6位递减计算器CNT,开启看门狗后,对其进行写(刷新)即为喂狗。
  • WWDG_SR:

    • 只有0位有效,为WWDG的提前唤醒中断的标志位,需由软件清零。

2)相关时间计算:

窗口下限超时时间计算:
T w w d g = T [ 5 : 0 ] + 1 F p c l k 1 4096 ∗ 2 分 频 系 数 = 4096 ∗ 2 分 频 系 数 ∗ T [ 5 : 0 ] + 1 F p c l k 1 ( 通 常 是 36 M H z ) = ( = 4096 ∗ 2 分 频 系 数 ∗ 0 x 40 F p c l k 1 ( 通 常 是 36 M H z ) ) Twwdg = \cfrac{T[5:0]+1}{\cfrac{Fpclk1}{4096* 2^{分频系数} }} =\frac{
{4096* 2^{分频系数} }*{T[5:0]+1}}{Fpclk1(通常是36MHz)}=(=\frac{
{4096* 2^{分频系数} }*{0x40}}{Fpclk1(通常是36MHz)})
Twwdg=40962Fpclk1T[5:0]+1=Fpclk1(36MHz)40962T[5:0]+1=(=Fpclk1(36MHz)409620x40)

3)库函数操作:

在这里插入图片描述

详细解释见以下代码注释:

void WWDG_Init(……)
{ 
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE);  
	//   WWDG时钟使能,APB2总线下

	WWDG_SetPrescaler(fprer);//设置IWDG预分频值

	WWDG_SetWindowValue(u8  );//设置窗口上限值

	WWDG_Enable(WWDG_CNT);	 
	//使能看门狗,注意有参数,同时设置 counter ,从哪儿开始递减.                  

	WWDG_ClearFlag();//清除提前唤醒中断标志位 ,使能中断前常见步骤

	WWDG_NVIC_Init();//初始化窗口看门狗 NVIC(自己写的函数)

	WWDG_EnableIT(); //开启窗口看门狗中断
} 


喂狗函数:
WWDG_Enable(WWDG_CNT);	 
	//与使能看门狗一致,即设置 counter的值从哪儿开始递减(刷新).
    //上图的WWDG_Set_Counter(u8 cnt)喂狗实际上封装了这个函数而已
    
    
唤醒中断服务函数:

void WWDG_IRQHandler(void)
	{

	WWDG_SetCounter(WWDG_CNT);	  
	//当禁掉此句后,窗口看门狗将产生复位
	//不可以间隔太久才久才喂狗,必须在一个时间周期内,即0x40变为0x39之前。
	WWDG_ClearFlag();	  //清除提前唤醒中断标志位


	}


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/139904.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Eclipse提示:The import java.util cannot be resolved「建议收藏」

    Eclipse提示:The import java.util cannot be resolved「建议收藏」Eclipse提示:The import java.util cannot be resolved

  • 分享一下学习css,js心得

    简化代码,使页面简洁!web前端开发——将界面更好呈现给用户!要了解在不同浏览器上的兼容情况、渲染原理和存在的bug!网站性能优化、SEO;代码的可维护性、性能;网站重构的本质:建立一个前端

    2021年12月22日
  • 渗透测试 漏洞扫描_系统漏洞扫描工具有哪些

    渗透测试 漏洞扫描_系统漏洞扫描工具有哪些安全漏洞产生的原因技术原因软件系统复杂性提高,质量难于控制,安全性降低 公用模块的使用引发了安全问题经济原因“柠檬市场”效应——安全功能是最容易删减的部分环境原因从传统的封闭、静态和可控变为开放、动态和难控 攻易守难安全缺陷安全性缺陷是信息系统或产品自身“与生俱来”的特征,是其“固有成分”安全漏洞是与生俱来的系统设计缺陷Internet从设计时就缺乏安全的总体架构和设计 TCP/IP中的三阶段握手.软件源代码的急剧膨胀Windows951500万行

  • 华为服务器升腾芯片,华为公布昇腾910芯片架构细节:7nm+ EUV工艺、32核达芬奇…

    华为服务器升腾芯片,华为公布昇腾910芯片架构细节:7nm+ EUV工艺、32核达芬奇…在今天开幕的行业顶级活动、第31届HotChips大会上,华为也作为主角之一参加,与AMD、Intel、ARM等巨头一道介绍自家在芯片方面的最新成果。华为此次活动的主题是AI芯片所用的“DaVinci(达芬奇)”架构,成品是去年发布的昇腾310(Ascend310)、昇腾910芯片和麒麟810芯片,另外,AI训练芯片已经应用上了HBM2E内存,即HBM2增强版,SK海力士产品的阵脚传输速率高…

  • mirna预测靶基因结果怎么看_基因预测

    mirna预测靶基因结果怎么看_基因预测上一篇《动物miRNA靶基因预测方法(一)——软件安装》介绍了4种靶基因预测软件的下载与安装,本篇则介绍每个软件的使用说明。事实上,软件的使用是很简单的,只要准备好miRNA和mRNA的序列数据,运行一两条命令就可获得预测结果,难就难在数据的准备,往往你的数据并符合软件运行的格式,所以这里会更多的介绍如何获得各软件的数据格式。1、miRanda的使用阅读说明文档README这里提取一…

    2022年10月26日
  • 学习方法——哈佛大学幸福课(积极心理学)学习笔记(上)

    学习方法——哈佛大学幸福课(积极心理学)学习笔记(上)最近刚看完哈佛大学的幸福课(又名积极心理学),真的是受益匪浅,通常心理学只研究如何消除抑郁、自卑等消极心理,但是消除了消极心理并不代表就会变得幸福,就像摆脱了痛苦并不代表获得了快乐。积极心理学的核心内容就是去分析积极心理的特点、研究如何培养他们。下面目录中加粗的章节是我认为的讲的最好的章节,从根源去分析悲观、焦虑以及完美主义等是如何产生的,然后分析它们与积极品性的关系,最后告诉我们培养积极品性…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号