STM32看门狗详解[通俗易懂]

STM32看门狗详解[通俗易懂]看门狗的作用:防止单片机因未知原因死机或比我们预期的时间过长长时间不能响应,如果出现这种问题,看门狗就会把单片机复位独立看门狗(IWDG):时钟来源:内部低速时钟(LSI),所以用看门狗时不需要配置时钟一般配置过程:寄存器:IWDG_KR:32位寄存器,低16位有效,只写写入0xAAAA,喂狗0x5555,取消IWDG_PR、IWDG_RLR的写保护0xCCCC,启动看门狗IWDG_PR:32位寄存器,低3位有效配置分频系数,4*2^prer.

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

看门狗的作用:防止单片机因未知原因死机或比我们预期的时间过长长时间不能响应,如果出现这种问题,看门狗就会把单片机复位

独立看门狗(IWDG):

  时钟来源:内部低速时钟(LSI),所以用看门狗时不需要配置时钟

一般配置过程:

STM32看门狗详解[通俗易懂]

寄存器:

IWDG_KR:

32位寄存器,低16位有效,只写

写入 0xAAAA,喂狗

0x5555,取消IWDG_PR、IWDG_RLR的写保护

0xCCCC,启动看门狗

IWDG_PR:

32位寄存器,低3位有效

配置分频系数,4*2^prer

IWDG_RLR:

32位寄存器,低12位有效,每次对IWDG_KR写入0xAAAA,这个值会装载到看门狗计数器中(向下记数,记到0复位)

IWDG_SR:

32位寄存器,低2位有效

位0:PVU:看门狗预分频值更新状态位,1:指示预分频正在更新,预分频器值只有在 PVU 位为 0 时才可更新。

位1:RVU:看门狗重装载值更新状态位,1:指示重装载值正在更新,重载值只有在 RVU 位为 0 时才可更新。

代码:

void iwdg_init()
{
  //IWDG_PR和IWDG_RLR有写保护,对其进行预分频和重装载值配置要先取消写保护
  IWDG->KR=0X5555;
  //配置预分频值
    //预分频值 = 4*2^prer
  IWDG->PR=0X04;    //64分频
  //配置重装载值
    //12位
  IWDG->RLR=500;
  
  //喂狗
  IWDG->KR=0XAAAA;
  //启动看门狗
  IWDG->KR=0XCCCC;
}

 窗口看门狗(WWDG):

时钟来源:APB1时钟,使用时应先使能时钟,这一点与独立看门狗不一样

会先分频4096倍,再分2^WDGTB,所以WWDG超时公式如下:
Tout=(4096 * 2^WDGTB * (窗口值低6位+1))/Fpclk1

窗口看门狗喂狗时间有上下限,上限就是上窗口值(寄存器可以进行配置,不固定),下窗口值(固定,0X3F),喂狗必须在上窗口与下窗口之间,大于上窗口喂狗或递减 寄存器到0X3F都将复位。WWDG还有一个中断(提前唤醒中断),作用是当递减寄存器到0X40时会进入中断

一般配置过程:

STM32看门狗详解[通俗易懂]

 寄存器:

WWDG_CR:

32位,只用到低8位

位7:WDGA    激活位

位6:0  :这些位用来存储看门狗计数器的值。它每隔 (4096 x 2^WDGTB) PCLK1 个周期递减一次。当它 从 0x40 滚动到 0x3FT6 清零)时会产生复位。

WWDG_CFR:

只用到低10位

位9: EWI(Early Wakeup Interrupt),提前唤醒中断,置1后计数器达到0x40会产生中断。

位8:7  :WDGTB(TIME Base ),用来分频

位6:0  :窗口置,要大于0x3f

WWDG_SR:

位0:EWIF(Early Weakeup Interrupt Flag),在中断服务程序中要置0

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

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

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

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

(0)
blank

相关推荐

  • python读取txt文件并画图[通俗易懂]

    1,使用python读取txt文件已知txt文件内容如下:001124394165256361234567请以第一列为x轴,第二列为y轴画图 步骤如下: 1)使用readlines读取文件 2)建立两个空列表X,Y,将第一列的数字放入X,第二列的数字放入Y中 3)以X,Y为轴画图 实现如下…

  • 全国计算机三级数据库技术

    全国计算机三级数据库技术全国计算机等级考试三级(数据库技术)一:考试内容及要求1.掌握数据库技术的基本概念、原理、方法和技术2.能够使用SQL语言实现数据库操作3.具备数据库系统安装、配置及数据库管理和维护的基本4.掌握数据库管理与维护的基本方法5.掌握数据库性能优化的基本方法6.了解数据库应用系统的生命周期及其设计、开发过程7.熟悉常用的数据库管理和开发工具、具备用指定的工具管理、开发简单数据库应用系统…

  • Python re正则表达式

    Python re正则表达式

  • 安装VMtool_虚拟机没有安装VMware Tools

    安装VMtool_虚拟机没有安装VMware Tools安装VMTOOL工具1.VMtoolsVMtools顾名思义就是Vmware的一组工具。主要用于虚拟主机显示优化与调整,另外还可以方便虚拟主机与本机的交互,如允许共享文件夹,甚至可以直接从本机向虚拟主机拖放文件、鼠标无缝切换、显示分辨率调整等,十分实用。2.先启动系统3.安装4.将安装包复制到桌面5.解压压缩包tar-zxvf*.tar.gz6.进入解压文件运行./vmware-install.pl7.安装完成选择yes,遇到选项回车。安装完成reboot。..

  • python删除首行_Python删除文件第一行

    python删除首行_Python删除文件第一行一、代码实例:defdel_firstline():forlineinfileinput.input(“file.txt”,inplace=1):ifnotfileinput.isfirstline():print(fileinput.replace(“\n”,””))二、使用的库:fileinputfileinput模块提供处理一个或多个文本文件的功能,可以通过使用for循环…

  • C语言编写简易图书管理系统[通俗易懂]

    C语言编写简易图书管理系统[通俗易懂]1.课程论文题目图书管理系统2.程序设计思路图书管理系统保持记录以进行删除,查询,借书,还书,退出,添加等等操作;使用菜单以实现功能选择模块。3.功能模块图4.数据结构设计1.编写主函数main()2.设计功能选项并标号,用switch选择,然后进入不同模块,进行不同选择,实现不同功能。3.为每个图书信息设置一个结构体,提供查询功能,还有删除功能以及借书还书功能。4.每运行一…

    2022年10月11日

发表回复

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

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