STM学习笔记--独立看门狗IWDG
2016-09-07 来源:eefocus
(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
}
- STM32转AT32代码转换
- STM32 MPU是什么产品?了解嵌入式系统中微处理器的新变化
- 【GD32 MCU 移植教程】9、从 STM32F10x 系列移植到 GD32F30x 系列
- 【GD32 MCU 移植教程】8、从 STM32F4xx 系列移植到 GD32F4xx 系列
- 【GD32 MCU 移植教程】10、从STM32F030系列移植到GD32E230系列
- GD32单片机STM32远程下载手机程序升级固件下载局域网网页升级工具
- GD32代码移植STM32(一)
- GD32单片机和STM32单片机的区别
- 使用MCU GD32替代STM32的体会
- X-CUBE-STL:支持更多STM32, 揭开功能安全的神秘面纱