打印

请教STM32独立看门狗的使用方法

[复制链接]
10719|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小弟最近用STM32F103VC开发了一个小系统,现在想加上看门狗防止程序跑飞,对看门狗的使用不是很熟悉,还望大家多多赐教。
    我的要求比较简单,只是想使用软件实现看门狗功能,初始化里面通过软件时能看门狗,主循环里面不断喂狗,我使用的是STM32里面的独立看门狗(IWDG),以下是我的使用方法,有什么不对的地方还请指正。
int main(void)
{
    ......

    /* 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);


  /* Reload IWDG counter */
  IWDG_ReloadCounter();


  /* Enable IWDG (the LSI oscillator will be enabled by hardware) */
  IWDG_Enable();


  while (1)
  {
    /* Reload IWDG counter */
    IWDG_ReloadCounter();


    ......

  }

}
    以上程序是直接移植STM32提供的例程,我在调试的时候去掉主循环里面的喂狗系统会不断复位(通过LED灯指示),不知道我这样使用有没有问题,我从相关资料了解到独立看门狗可以通过硬件上产生外部中断实现复位也可以通过软件复位,由于系统硬件已经成型,不便更改,所以只能通过软件复位。
沙发
gxgclg| | 2009-11-2 19:34 | 只看该作者
调试的时候一般不加看门狗,调试好了再加上

使用特权

评论回复
板凳
mcuisp| | 2009-11-4 01:10 | 只看该作者
其实调试时,独立看门狗是可以停止的。见下图的DBG_IDWG_STOP控制位
ST的研发人员想的很周全。
可能LZ的调试器或者IDE没支持这个特性,或者LZ没设置好

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

68

帖子

1

粉丝