首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

STM32 独立看门狗IWDG 时限

STM32 独立看门狗IWDG 时限

看门狗定时时限= IWDG_SetReload()的值 / 看门狗时钟频率
   看门狗时钟频率=LSI(内部低速时钟)的频率(40KHz)/ 分频数
1.STM32 看门狗的 例子
IWDG的时限定为280微秒。这个时限可能会随着LSI(内部低速时钟)的频率漂移而产生微
小的变化。
  /* IWDG timeout equal to 280 ms (the timeout may varies due to LSI frequency
     dispersion) -------------------------------------------------------------
*/
  /* Enable write access to IWDG_PR and IWDG_RLR registers */
  IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
  /* IWDG counter clock: 40KHz(LSI) / 32 = 1.25 KHz */
  IWDG_SetPrescaler(IWDG_Prescaler_32);
  /* Set counter reload value to 349 */
  IWDG_SetReload(349);
/*该参数允许取值范围为0 – 0x0FFF *
  /* Reload IWDG counter */
  IWDG_ReloadCounter();
  /* Enable IWDG (the LSI oscillator will be enabled by hardware) */
  IWDG_Enable();
2.独立看门狗(IWDG)由专用的40kHz 的低速时钟为驱动;因此,即使主时钟发生
故障它也仍然有效。窗口看门狗由从APB1 时钟分频后得到的时钟驱动,通过可
配置的时间窗口来检测应用程序非正常的过迟或过早的行为。可通过
IWDG_SetPrescaler(IWDG_Prescaler_32); 对其时钟进行分频,4-256,
通过以下方式喂狗 :
/* Reload IWDG counter */
  IWDG_ReloadCounter();
3. 1.25KHz 即每周期 为0.8ms
    共计时 350 个周期,即350*0.8ms=280ms
   看门狗定时时限= IWDG_SetReload()的值 / 看门狗时钟频率
   看门狗时钟频率=LSI(内部低速时钟)的频率(40KHz)/ 分频数
继承事业,薪火相传
返回列表