怎么用IWDG
独立看门狗一般用来检测和解决由程序引起的故障,比如一个程序正常运行的时间是50ms, 在运行完这个段程序之后紧接着进行喂狗,我们设置独立看门狗的定时溢出时间为60ms,比我们需要监控的程序50ms多一点, 如果超过60ms还没有喂狗,那就说明我们监控的程序出故障了,跑飞了,那么就会产生系统复位,让程序重新运行。内部狗加外部硬件狗双模式 独立看门狗检测的稳定机制是什么? 看门狗是不是就是让系统复位的一种操作 喂狗过程一定要及时,避免发生问题 系统规避错误方式有很多,一般就是使用使用看门狗 看门狗用得不好,反而程序会异常复位 记得及时喂狗 看门狗其实就是自动复位的一种手段 经常用独立看门狗 及时喂狗,否则复位 看门狗其实就是自动复位处理异常的一种手段 需要配置IWDG的预分频器和计数器重装载值。预分频器决定了IWDG计数器的时钟频率,而重装载值则设置了计数器计数的上限。 IWDG的计数器可以在待机和停止模式下运行,保证了即使在低功耗模式下也能监控系统状态。 在程序运行中,必须在IWDG的超时时间之前刷新它,防止它触发复位。通常,这可以通过写入特定的寄存器来完成。 通过向键寄存器(IWDG_KR)写入特定的启动值(如0xCCCC)来启动看门狗。一旦启动,它将开始倒计时。 在使用IWDG之前,需要对其进行初始化。这通常包括重置IWDG计数器和配置相关的寄存器。 喂狗代码通常简单地将重载值写入IWDG的KR(Key Register)寄存器 选择预分频器值,该值决定了IWDG时钟的频率。常见的预分频器值有4、8、16、32、64、128、256。
根据需要的看门狗超时时间计算重载值。超时时间 = (预分频器值) * (重载值) / (LSI时钟频率)。
启用IWDG,并配置重载寄存器(IWDG_RLR)。 IWDG的状态可以通过状态寄存器(Status Register)来查询。状态寄存器中有两个重要标志位:PVU(预分频值更新)和RVU(重装载值更新)。这两个标志位由硬件自动设置和清除,表明预分频值和重装载值更新的状态。
只有在RVU和PVU都为0时,你才能更新重装载寄存器和预分频寄存器。
页:
[1]
2