原创 STM32 学习笔记之独立看门狗

2013-7-9 20:08 902 18 19 分类: 消费电子

 STM32F10x系列内置有两个看门狗:独立看门狗(IWDG)和窗口看门狗(WWDG)。

   独立看门狗由内部专门的40Khz低速时钟驱动,即使主时钟发生故障,它也仍然有效。但是,独立看门狗的时钟并不是准确的40Khz,而是在30~60Khz之间变化的一个时钟。

    使用独立看门狗我们需要用到几个寄存器:

    1)键寄存器(IWDG_KR),在键寄存器(IWDG_KR)中写入0xCCCC,开始启用独立看门狗;此时计数器开始从复位值0xFFF递减计数。当计数器计数到末尾0x00时,会产生一个复位信号(IWDG_RESET)。无论何时,只要键寄存器IWDG_KR总被写入0xAAAA,IWDG_RLR中的值就会被重新加载到计数器中从而避免产生看门狗复位。

    2)预分频寄存器(IWDG_PR),低3位有效,具有写保护功能。要改变预分频因子,I状态寄存器(WDG_SR)的PVU位必须为0.

    3)重装载寄存器(IWDG_RLR)低12位有效,具有写保护功能。每当向键寄存器(IWDG_KR)写入0xAAAA时,重装载值会被传送到计数器中,随后计数器从这个值开始递减计数。

     启动独立看门狗需要进行一下操作:

    1)向键寄存器(IWDG_KR)写入0x5555,通过写入值取消预分频寄存器(IWDG_PR)和重装载寄存器(IWDG_RLR)的写保护。喂狗时间:Tout=40Khz/(4*2^prer)*rlr)

    2)向键寄存器(IWDG_KR)写入0xAAAA,是STM32重新加载IWDG_RLR的值到看门狗计数器里面。

    3)向键寄存器(IWDG_KR)写入0xCCCC,启动STM32的看门狗。

参考程序:

/***************************************************************************************
****************************************************************************************
* FILE : IWDG.c
* Description : Init Independent watchdog 
*  prer:Prescaler : 0~7   (the last 3 bit are effective)
*  Division factor=4*2^prer. <=256
*  rlr::IWGD_RLR: low 12 bit are effective
*  Time calculate:  Tout=40K/((4*2^prer)*rlr)  
*  
* Study STM32 record.
* History:
          LED0             PB.0
          KEY01           PB.5
          KEY00           PB.4
 KEY10           PC.10
* Version Name       Date Description
       1.0                  Penny        2013/6/18
   
   
****************************************************************************************
****************************************************************************************/ 
 
#include "ms5.h"
 
void IWDG_Init(u8 prer, u16 rlr)
{
IWDG->KR=0x5555;       //使能预分频寄存器IWDG->PR 和重装载寄存器IWDG->RLR写功能
 
IWDG->PR=prer;         //设置预分频值: LSI/32=40Khz/4*2^pre
IWDG->RLR=rlr;          //设置重加载值: 重加载寄存器IWDG->RLR
IWDG->KR=0xAAAA;    //按照IWDG重装载寄存器的值重装载IWDG计数器
IWDG->KR=0xCCCC;    //使能看门狗
}
 
 
//喂独立看门狗
void IWDG_Feed(void)
{
IWDG->KR=0xAAAA;      //reload
}
 

文章评论1条评论)

登录后参与讨论

用户1698964 2013-7-12 17:42

对于初学者来说真是篇好文章,所以推荐推荐
相关推荐阅读
用户1584489 2014-08-27 20:37
凤舞天讲msOS的OS
我们先讲OS部分,大家知道,系统启动之后,是从复位开始的 那么复位对应的栈,就是MSP栈 Cortex系列,存在两个栈 MSP和PSP 之所以分为两个栈,是为了给OS用的 注意,是专门...
用户1584489 2014-06-10 12:04
国产嵌入式微系统msOS成型记之一:何为嵌入式微系统
嵌入式微系统,顾名思义就是嵌入式微型操作系统,然而操作系统一词在嵌入式行业里往往专指uC/OS之类的带任务切换的系统,所以为了有别于这个专用名词,往往用开发平台一词来代替,所以嵌入式...
用户1584489 2014-04-10 10:53
嵌入式微平台(msOS)
          ...
用户1584489 2014-04-10 10:01
嵌入式微平台(msOS)简介
嵌入式微系统(msOS)是深圳市雨滴科技有限公司的王绍伟先生(网名:凤舞天)在2013年基于早期开发的“实用单片机系统,标识MS”,经过多年的MTK手机开发经验,结合自己具体的项目应用而升级推出的...
用户1584489 2014-04-10 09:43
评论:@雨滴-凤舞天 博客中提到的“阴阳五行”
老大的文章及其有道理,转一个...
用户1584489 2014-03-10 10:10
关于msPLC/msOS相关资料下载
 随着msOS的不断完善,源代码、相关文档和视频的完成,只是把资料放在群共享不能方便更多的人下载学习,所以现在把相关资料都放在了网盘里面,有需要的可以进到网盘下载。 360云盘:http://...
我要评论
1
18
关闭 站长推荐上一条 /2 下一条