你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

独立看门狗的问题

[复制链接]
mrclp 提问时间:2016-4-21 11:04 /
Help ...用的是stm32f030f4p6,开了独立看门狗之后,仿真设置断点,硬件还是会自动复位是吧?
后面改了程序,都没有给看门狗初始化,设置中断后,硬件还是会自动复位去自己跑程序;还要怎么关闭看门狗?
收藏 1 评论4 发布时间:2016-4-21 11:04

举报

4个回答
xmshao 回答时间:2016-4-21 16:09:04
要重新修改代码,关闭看门狗。复位运行生效。



mrclp 回答时间:2016-4-21 23:06:18
xmshao 发表于 2016-4-21 16:09
要重新修改代码,关闭看门狗。复位运行生效。

关闭看门狗,就是不初始化看门狗的意思吧;
damiaa 回答时间:2017-2-16 13:01:51
本帖最后由 damiaa 于 2017-2-16 13:05 编辑

IWDGInit(); //初始化看门狗
IWDG_ReloadCounter();//喂狗

如果你初始化启动了看门狗,定期喂狗是必须的。否则就复位了。

如果你不初始化启动看门狗,就没必要喂狗。只是在程序跑飞后不能复位重新启动。

看门狗主要是为了 程序跑飞后能复位重新启动


void IWDGInit(void)
{
/* IWDG timeout equal to 250 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: LSI/32 */
  IWDG_SetPrescaler(IWDG_Prescaler_32);
  /* Set counter reload value to obtain 250ms IWDG TimeOut.
     Counter Reload Value = 250ms/IWDG counter clock period
                          = 250ms / (LSI/32)
                          = 0.25s / (LsiFreq/32)
                          = LsiFreq/(32 * 4)
                          = LsiFreq/128
   */
  //IWDG_SetReload(LsiFreq/128);
  IWDG_SetReload(40000/128);
  /* Reload IWDG counter */
  IWDG_ReloadCounter();
  /* Enable IWDG (the LSI oscillator will be enabled by hardware) */
  IWDG_Enable();
}

oid IWDG_ReloadCounter(void)
{
  IWDG->KR = KR_KEY_RELOAD;
}

IC销售工程师 回答时间:2017-2-18 09:33:08
围观

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版