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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • webgame开发简明教程

    webgame开发简明教程 webgame开发简明教程(1)研究所有点缺乏资料啊。讨论的问题怪怪的。只有很少是能用到的。一、简单的程序框架。webgame程序构成:三大部分。第一是数据流程。第二是程序。第三是美术。其中,数据流程包括了功能。也只有在功能中才能体现数据流程。数据流程相当的麻烦,后面再讨论。比如最简单的卖买产品。要实现这个功能。那么需要有产品基础表、产

    2022年5月2日
    45
  • SSL协议原理

    SSL协议原理

    2021年4月14日
    130
  • linux修改nfs端口,centOS 搭建NFS服务器 配置端口映射使不同网段可访问

    linux修改nfs端口,centOS 搭建NFS服务器 配置端口映射使不同网段可访问1.修改/etc/exports,增加共享文件夹:/home/haishao_deng*(rw,nohide,insecure,no_subtree_check,async,no_root_squash)如果已经安装开启nfs,则只需执行exportfs-rv2.安装NFSsudoyum-yinstallnfs-utilsrpcbindsudochkconfignfson…

    2022年6月27日
    78
  • UCOSII操作系统学习之任务间的通信(1)

    UCOSII操作系统学习之任务间的通信(1)1.任务间通讯方式:信号量和邮箱为了把描述事件的数据结构统一起来,UCOSII使用叫做事件控制块(ECB)的数据结构来描述诸如信号量、邮箱(消息邮箱)和消息队列这些事件。信号量,邮箱,消息队列都是一类事件。2.信号量:1)创建信号量OS_EVENT*OSSemCreate(INT16Ucnt)…

    2022年5月11日
    48
  • eclipse离线安装svn插件使用教程_eclipse不显示svn插件

    eclipse离线安装svn插件使用教程_eclipse不显示svn插件【Android】Eclipsesvn插件安装说明   昨天心血来潮,因为总是有些小的测试文档修改了修改去,后来某天找代码又麻烦得很,想把本机上的所有代码管理起来,在网上度娘了下,决定在Eclipse中安装svn插件,来管理本地的源代码文档。现在附上一些安装步骤,后续的使用慢慢地摸索吧。一、安装环境:PC:windowEclipse:JunoServiceRelease

    2022年10月7日
    2
  • cutoff激活成功教程版下载_cutout

    cutoff激活成功教程版下载_cutout000000013F67F64|E831680500         |callcutout.13F6D5E80                  |000000013F67F64|4C8D0DCAF33C00   |lear9,qwordptrds:[13FA4EA20]        |;13FA4EA20:L”menuicon.png”

    2022年9月16日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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