独立看门狗的定义:单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路就是为了避免这种情况的发生。看门狗的作用就是在一定时间内(通过定时计数器实现)没有接收喂狗信号(表示 MCU 已经挂了),便实现处理器的自动复位重启(发送复位信号)。
独立看门狗的时钟:独立看门狗(IWDG)由专用的低速时钟(LSI)驱动,即使主时钟发生故障它也仍然有效。
适用场合:适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精
度要求较低的场合。
独立看门狗的主要性能:
1、自由运行的递减计数器
2、时钟由独立的RC振荡器提供(可在停止和待机模式下工作)
3、看门狗被激活后,则在计数器计数至0x000时产生复位
寄存器描述:
1、键寄存器(IWDG_KR)
软件必须一定时间向此寄存器写入0XAAAA,否则当计数器为0时看门狗会复位。
写入0x5555表示允许访问IWDG_PR和IWDG_RLR寄存器。(具有写保护功能)
写入0xCCCC,启动看门狗工作(若选择了硬件看门狗则不受此命令字限制)。
2、预分频寄存器(IWDG_PR)
用于设置看门狗的时钟分频,使用之前必须向IWDG_KR寄存器写入0xCCCC
要改变预分频因子,IWDG_SR寄存器的PVU位必须为0。
3、重装载寄存器(IWDG_RLR)
寄存器写入0xAAAA时,重装载值会被传送到计数器中。此寄存器设置的重装载值,当开始计数后从这个值递减到0。
4、状态寄存器(IWDG_SR)
RVU:看门狗计数器重装载值更新 ,此位由硬件置1指示重装载值的更新正在进行中,当在VDD域中的重装载更新结束后,此位由硬件清’0’
PVU: 看门狗预分频值更新 ,此位由硬件置’1’用来指示预分频值的更新正在进行中。当在VDD域中的预分频值更新结束后,此位由硬件清’0’
看门狗配置过程
1、取消寄存器写保护(向 IWDG_KR 写入 0X5555)
2、设置独立看门狗的预分频系数和重装载值
3、重载计数值喂狗(向 IWDG_KR 写入 0XAAAA)
4、启动看门狗(向 IWDG_KR 写入 0XCCCC)
说明:在使用了看门狗之后要在定时时间内喂狗,否则将会导致程序重启
明日计划:学习窗口看门狗,时间不早啦,早点休息啦!