STM32之六独立看门狗
2024-10-18 来源:cnblogs
单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路就是为了避免这种情况的发生,在一定的时间内(通过计数器)没有喂狗信号输入给看门狗则表示MCU出现问题,自动会给处理器发送复位信号,是MCU重新启动,是系统正常运转。
STM32的独立看门狗有内部的专门40KHz低速时钟驱动,即使主时钟发生故障,它仍然有效。看门狗时钟十一个内部RC时钟,并不是准确的40KHz,而是在30~60KHz之间的变化时钟,估算时间的时候以40KHz来计算。
第一步,首先取消寄存器写保护,我们利用库函数的IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);来实现,
第二部,设置独立看门狗的预分频系数和重载装值,我们同样用库函数实现,
第三步,重载计数器值喂狗,我们用IWDG_ReloadCounter();来实现
第四步,启动看门狗,用IWDG_Enable();来实现
下面来看下程序,实现以下功能,如果不喂狗,则led灯会亮了然后系统复位,自动会灭,然后运行程序又会亮,这样亮灭亮灭,如果我们连续按下按键,则系统不会复位,即led会一直亮着
看下iwdg.c
看下主函数:
这个还是比较简单的
上一篇:STM32之八定时器中断
下一篇:STM32之五外部中断(下)
相关文章