打印
[APM32F1]

IWDG—独立看门狗

[复制链接]
291|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mcufae|  楼主 | 2023-8-31 17:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.看门狗的介绍
APM32 有两个看门狗,一个是独立看门狗另外一个是窗口看门狗。独立看门狗实质上的解释就是一个 12 位的递减计数器,当计数器的值从某个值一直减到 0 的时候,系统就会产生一个复位信号。如果在计数没减到 0 之前,刷新了计数器的值的话,那么就不会产生复位信号,简单点来说,就是倒计时到0之前,重新刷新一下,就不会产生复位。。
2.看门狗的详细介绍
独立看门狗是由一个八位预分频器 IWDT_PSC、12 位递减计数器、12 位重装载寄存器 IWDT_CNTRLD、键寄存器 IWDT_KEY 和状态寄存器 IWDT_STS 组成,独立看门狗有独立的时钟源,即使是在主时钟失效的情况下,它仍然有效。独立看门狗适用于需要独立的环境但对精确度要求不高的场所。
(1)八位预分频器 IWDT_PSC,递减计数器的时钟由 LSI 经过一个 8 位的预分频器得到,我们可以操作预分频器寄存器 IWDT_PSC 来设置分频因子,分频因子可以是:[4,8,16,32,64,128,256,256]。
(2)计数器重装载寄存器,独立看门狗的计数器是一个 12 位的递减计数器,最大值为 0XFFF,当计数器减到 0 时,会产生一个复位信号,让程序重新启动运行,如果在计数器减到 0 之前刷新了计数器的值的话,就不会产生复位信号。
(3)关键字寄存器(IWDT_KEY),键寄存器 IWDT_KEY 可以说是独立看门狗的一个控制寄存器,主要有三种控制方式,往这个寄存器写入下面三个不同的值有不同的效果。
写入 0x5555 表示允许访问 IWDT_PSC 和 IWDT_CNTRLD 寄存器;软件写入 0xAAAA 表示执行重装载计数器,需要一定的间隔写入,防止看门狗复位。写入 0xCCCC,启动看门狗(硬件看门狗不受此命令字限制)。
(4)看门狗超时时间(40kHz的输入时钟(LSI)),这些时间是按照40kHz时钟给出。实际上,MCU内部的RC频率会在30kHz到60kHz之间变化。预分频寄存器(IWDT_PSC)= 256,计数器重装载寄存器(IWDT_CNTRLD)=  0XFFF,此时最长时间26214.4ms.
3.代码详解
关于APM32F103的看门狗代码,可以在官网下载最新的SDK进行学习研究。
    IWDT_EnableWriteAccess();
    IWDT_ConfigDivider(IWDT_DIVIDER_32);  
    IWDT_ConfigReload(300);
    IWDT_Enable();
    while(1)
    {
       IWDT_Refresh();
    }

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

8

帖子

0

粉丝