STM32
直播中

小香干

12年用户 516经验值
擅长:399938
私信 关注
[问答]

如何证明单片机程序的状态是正常的呢

窗口看门狗(WWDG)的机制是什么?
独立看门狗(IWDG)的机制是什么?
如何证明单片机程序的状态是正常的呢?有哪几种方法?

回帖(1)

翁愿冠

2021-8-9 17:36:13
  概述
  当单片机受到外界的干扰,程序会跑飞,那么如何证明程序的状态是正常的呢?
  法1:在中断中加入LED闪烁,当看到灯以设定的频率闪烁则可以证明单片机是正常运行的。
  法2:窗口看门狗。
  窗口看门狗(WWDG)的机制:
  WWDG本质上是一个7位的计数器,因此看门狗定时器的数值变化在0-0x7F之间。而窗口则是设置在这个范围内的上限(可设)和下限(固定值0x40)。
  时钟源:PLCK1,也就是系统时钟总线。
  当WWDG的计数器的值在窗口内被改变,单片机不产生复位。
  当WWDG的计数器的值在窗口之外被改变,单片机产生复位。
  计数周期
  
  独立看门狗(IWDG)的机制:
  IWDG和WWDG大同小异,只是可在上限(即自动重载值,即最大值)与下限(即0)之间改变计数器的值,并且必须在这个区间改变计数器的值,否则就会产生复位。
  时钟源:外部RC时钟。
  计数周期
  
  注:
  1.时钟源不同,WWDG必须是系统时钟正常运行的情况下才能正常运行,如果系统时钟错了,有可能程序已经跑飞,但不会产生复位。但IWDG的时钟则是独立的,不会受到内核产生的系统时钟的影响。
  2.看门狗也是一个中断源,在中断服务子函数可以保存数据什么的。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分