STM32之独立看门狗 stm32窗口看门狗

实验现象:

开始LED1亮,LED2熄灭,若不隔时间按KEY1则发现LED2因独立看门狗的作用使系统复位而不断闪烁,若间断的按KEY1则发现LED2不会闪烁,表明没有复位。

实验平台:

基于STM32F103C8T6的彩屏开发板

操作步骤:

1)向IWDG_KR 写入0X5555。
通过这步,我们取消IWDG_PR 和IWDG_RLR 的写保护,使后面可以操作这两个寄存器。
设置 IWDG_PR 和IWDG_RLR 的值。
这两步设置看门狗的分频系数,和重装载的值。由此,就可以知道看门狗的喂狗时间(也
就是看门狗溢出时间),该时间的计算方式为:
Tout=((4×2^prer) & times;rlr) /40
其中Tout 为看门狗溢出时间(单位为ms);prer 为看门狗时钟预分频值(IWDG_PR 值),
范围为0~7;rlr 为看门狗的重装载值(IWDG_RLR 的值);
比如我们设定 prer 值为4,rlr 值为625,那么就可以得到Tout=64×625/40=1000ms,这样,
看门狗的溢出时间就是1s,只要你在一秒钟之内,有一次写入0XAAAA到IWDG_KR,就不会导致看门狗复位(当然写入多次也是可以的)。这里需要提醒大家的是,看门狗的时钟不是准
确的40Khz,所以在喂狗的时候,最好不要太晚了,否则,有可能发生看门狗复位。

2)向IWDG_KR 写入0XAAAA。
通过这句,将使STM32 重新加载IWDG_RLR 的值到看门狗计数器里面。也可以用该命令
来喂狗。
3)向IWDG_KR 写入0XCCCC。
通过这句,来启动 STM32 的看门狗。注意IWDG 在一旦启用,就不能再被关闭!想要关
闭,只能重启,并且重启之后不能打开IWDG,否则问题依旧,所以在这里提醒大家,如果不
用IWDG 的话,就不要去打开它,免得麻烦。
通过上面 3 个步骤,我们就可以启动STM32 的看门狗了,使能了看门狗,在程序里面就
必须间隔一定时间喂狗,否则将导致程序复位。利用这一点,我们通过一个LED 灯来指
示程序是否重启,来验证STM32 的独立看门狗。

程序部分代码:

watchdong.h

#ifndef WATCHDOG_H
#define WATCHDOG_H
void WatchDog_Init(u8, u16);//申明看门狗的初始化函数
void WatchDog_Feed(void);//申明喂狗的函数
#endif

watchdong.c

#include"common.h"
#include"watchdog.h"
//看门狗初始化,参数:prer-分频,reld-计数器重装载值
void WatchDog_Init(u8 prer, u16 reld)
{
IWDG->KR=0x5555; //允许访问PR和RLR寄存器
IWDG->PR=prer; //设置分频
IWDG->RLR=reld;//设定计数器初值
IWDG->KR=0xaaaa;//初次装初值
IWDG->KR=0xcccc; //启动看门狗定时器
}

//喂狗
STM32之独立看门狗 stm32窗口看门狗
void WatchDog_Feed(void)
{
IWDG->KR=0xaaaa;
}
该代码就2 个函数,void IWDG_Init(u8 prer,u16 rlr)是独立看门狗初始化函数,就是按照
上面介绍的步骤来初始化独立看门狗的。该函数有2 个参数,分别用来设置与预分频数与重装
寄存器的值的。通过这两个参数,就可以大概知道看门狗复位的时间周期为多少了。其计算方
式上面有详细的介绍,这里不再多说了。
void IWDG_Feed(void)函数,该函数用来喂狗,因为STM32 的喂狗只需要向键值寄存器写
入0XAAAA 即可,

主函数
#include<stm32f10x_lib.h>
#include"common.h"
#include"led.h"
#include"key.h"
#include"watchdog.h"
int main(void)
{
u8 temp2;
Stm32_Clock_Init(9);//系统时钟设置
delay_init(72);//延时初始化
LED_Init();//LED初始化
KEY_Init();
WatchDog_Init(4,625);//看门狗初始化
LED1=1;
LED2=0;
while(1)
{
temp2=KEY_Scan();//读取按键值
if(temp2==1)
WatchDog_Feed();//喂狗

}
}

  

爱华网本文地址 » http://www.aihuau.com/a/25101016/313163.html

更多阅读

《狗神的小骨头》 狗神小说怎么不更了

《狗神的小骨头》狗神的小骨头 BY:冬虫文案:传说东敖神州的白骨山下正在闹精怪,狗神君獒便寻着气味找了过去,却在山下发现了正在哭天喊地的小白骨精宝儿,不料,宝儿在看到他的第一眼就晕了过去,无奈之余,狗神君只好先将宝儿叼回狗神殿去。宝

STM32的看门狗配置 stm32窗口看门狗

看门狗的配置有2部分:看门狗的初始化和喂狗。下面看一下STM32是怎么初始化看门狗和喂狗的。看门狗初始化步骤:1.IWDG_PR和IWDG_RLR寄存器具有写保护功能。要修改这两个寄存器的值,必须先向IWDG_KR寄存器中写入0x5555。2.设置预分频

转载 WebDriver拾级而上·之六获得弹出窗口 webdriver拾级而上

原文地址:WebDriver拾级而上·之六获得弹出窗口作者:乙烯捕获或者说定位弹出窗口的关键在于获得弹出窗口的句柄。在代码里,使用getWindowHandle方法来获取当前浏览器窗口的句柄,使用了getWindowHandles方法获取所有弹出的浏览器窗口的句

孤独的大多数孤独,是为了保持精神的独立 精神孤独

朱大可,上海人氏,早年指陈时弊,妙语喷人,开创一代酷评之风,赢得“一剑封喉”之美誉;后留学澳洲八年,归国后重出江湖,嬉笑怒骂间直指当下文化之精神病灶,寻求自由知识分子之独立声音。有《燃烧的迷津》《话语的闪电》《流氓的盛宴》《21世纪中

声明:《STM32之独立看门狗 stm32窗口看门狗》为网友曲终人终须散分享!如侵犯到您的合法权益请联系我们删除