Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1498653
  • 博文数量: 204
  • 博客积分: 4013
  • 博客等级: 中校
  • 技术积分: 4030
  • 用 户 组: 普通用户
  • 注册时间: 2011-12-29 06:34
文章分类

全部博文(204)

文章存档

2012年(204)

分类:

2012-07-08 22:49:50

   看门狗定时时限= 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)/ 分频数
阅读(12547) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~