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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 如何更换tomcat版本

    如何更换tomcat版本eclipse如何更换tomcat版本呢?其实很简单首先选中项目,右键,如图选中tomcat,点击删除按钮,如下图tomcat已经没有了,点击addlibrary…,然后添加serverruntime(tomcat环境),点击next按钮我安装了两个tomcat,选择自己本地需要的tomcat,点击finish按钮tomcat已经添加至项目里,点击ok看,项目里已经换过…

    2022年8月30日
    4
  • integer转string java_Integer转换为String类型[通俗易懂]

    integer转string java_Integer转换为String类型[通俗易懂]在学习泛型时,遇到了一个小问题:Integeri=2;Strings=(String)i;Integer类型转换为String类型,本来想直接用强制转换,结果报错:Exceptioninthread”main”java.lang.ClassCastException:java.lang.Integercannotbecasttojava.lang.String经过…

    2025年8月4日
    2
  • leetcode 回文数_字符串转换为整数

    leetcode 回文数_字符串转换为整数原题链接请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。函数 myAtoi(string s) 的算法如下:读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。将前面步骤读入的这些数字转换为整数(即,“1

    2022年8月9日
    5
  • 美国空间Hostease支付宝人民币购买教程图解[通俗易懂]

    美国空间Hostease支付宝人民币购买教程图解[通俗易懂]这段时间买国外主机的筒子们越来越多,而付款就是首先摆在大家眼前的一道障碍,大部分美国主机商只能通过信用卡购买,付款不方便,因此能够使用支付宝支付的主机商也备受关注。而目前全球支持支付宝付款的美国主机商一共就三家,分别是ixwebhosting、Godaddy、HostEase。第二道障碍就是网站英文界面问题,目前只有ixwebhosting开通了中文站点,因此大家购买ixwebhost…

    2022年10月18日
    2
  • iOS charles 抓包使用[通俗易懂]

    iOS charles 抓包使用[通俗易懂]参考链接:Charles抓包使用教程-MAC-黒貓-博客园部分APP无法代理抓包的原因及解决方法(flutter抓包)-lulianqi15-博客园建议最好从官网下载应用,1个月免费使用,可以使用注册码来激活,链接如下:DownloadaFreeTrialofCharles•CharlesWebDebuggingProxycharles连接手机可以参考链接1,非常详细,珠玉在前,不在赘述;*****连接步骤简述*****下载c.

    2022年6月7日
    87
  • web前端表单制作_注册表单测试用例

    web前端表单制作_注册表单测试用例03- web表单测试

    2022年4月22日
    58

发表回复

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

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