/*********************************************************************/
RTC Real_Time_Clock
/*********************************************************************/
付费换来的笔记——看门狗详解
/*********************************************************************/
一 背景(雾)
单片机的工作常常会收到外界电磁场的干扰,造成程序跑飞,陷入死循环
处于对单片机运行状态进行实时监测的考虑 便产生了专门用于检测单片机
程序运行状态的模块或者芯片
/*********************************************************************/
二 看门狗解决了什么
要每隔一段时间喂狗,如果超过时间没有喂狗,将视为程序跑飞,则系统
看门狗复位
/*********************************************************************/
三 STM32里的看门狗
1 独立看门狗
LSI专用时钟,
应用于需要看门狗作为一个在主程序之外能够完全独立工作,对时间精度要求低
2 窗口看门狗
APB1时钟分频后得到的时钟来驱动
适合要求看门狗在精确几时窗口起作用的程序
/*********************************************************************/
四 详解独立看门狗(时钟由独立的RC振荡器提供,可在停止和待机模式下工作)
1 摘抄———————————————————————————
“就是一个 12 位的递减计数器,当计数器的值从某个值一直减到 0 (0X000)的时候, 系统就会产生一个复位信号,即
IWDG_RESET。 如果在计数没减到 0 之前,刷新了计数器的值的话,
那么就不会产生复位信号,这个动作就是我们经常说的喂狗。”
2 详解———————————————————————————
在键寄存器中(IWDG_KR)中写入0XCCCC,就会启用独立看门狗
计数器开始从0XFFF递减计数,
!!!
如果程序没跑偏,就会记得喂狗,在键寄存器中写入0XAAAA,
IWDG_RLR中的值就会被重新加载到计数器,从而避免看门狗复位
!!!
如果程序跑飞了,忘记喂狗,则计数器中的值到达0X000,系统产生了复位信号
就复位了
3 IWDG寄存器描述——————————————————————
IWDG_PR和IWDG_RLR寄存器具有写保护功能&#