微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > STM学习笔记--独立看门狗IWDG

STM学习笔记--独立看门狗IWDG

时间:11-18 来源:互联网 点击:
1:主要性能

(1)时钟由独立的RC振荡器提供

(2)自由运行的递减计数器

(3)看门狗被激活,则在计数器至0x000时产生复位

2:寄存器理解

(1)键寄存器(IWDG_KR)中写入0XCCCC,开始启动独立看门狗,计数值由复位

(2)0XFFF递减计数,当计数器到末尾0X000时,产生一个复位信号。

(3)键寄存器(IWDG_KR)中写入0XAAAA,IWDG_RLR中的值会重新加入到计数器。即是清狗。

IWDG_PR(8bits预分频寄存器)和IWDG_RLR(12bits)具有写保护功能,想修改这个寄存器,IWDG_KR寄存器写入0X5555。

工作原理框图

时钟来源是LSI内部RC振荡40KHZ不稳定30~60KHZ,对时钟的稳定性要求较低的场合。

注意:

12位IWDG_RLR重装载数值0X000-0XFFF,若修改,必须等待IWDG_SR寄存器中的RVU为0。

3位PR[2:0]必须等待PVU为0时,才能修改IWDG_PR寄存器中的数值。

PVU即看门狗预分频更新prescaler value update

RVU即看门狗重装载值更新reload value update

寄存器如下:

程序如下:来自正点原子@ALIENTEK开发板

//初始化独立看门狗

//prer:分频数:0~7(只有低3位有效!)

//分频因子=4*2^prer.但最大值只能是256!

//rlr:重装载寄存器值:低11位有效.

//时间计算(大概):Tout=((4*2^prer)*rlr)/40 (ms).

void IWDG_Init(u8 prer,u16 rlr)

{

IWDG->KR=0X5555;//使能对IWDG->PR和IWDG->RLR的写

IWDG->PR=prer;//设置分频系数

IWDG->RLR=rlr;//从加载寄存器IWDG->RLR

IWDG->KR=0XAAAA;//reload将重装载值放入计数器,从而避免从0XFFF开始

IWDG->KR=0XCCCC;//使能看门狗

}

//喂独立看门狗

void IWDG_Feed(void)

{

IWDG->KR=0XAAAA;//reload

}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top