打印

stm32 iwdg看门狗的使用问题?问题已解决

[复制链接]
8222|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
芯行天下|  楼主 | 2009-5-25 10:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
写了个看门狗程序,可是却不工作,不知何原因,大家指点一二。
/*******************************************************************************
* Function Name  : IWDG_Configuration
* Description    : Configures IWDG.
* Input          : None
* Output         : None
* Return         : None
* 备注        : 看门狗时长约为800ms
*******************************************************************************/
void IWDG_Configuration(uint16 dogtime)
{
  /* IWDG timeout equal to 819 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) / 8 = 5 KHz */
  IWDG_SetPrescaler(IWDG_Prescaler_8);

  /* Set counter reload value to 0xfff */
  IWDG_SetReload(dogtime);

  /* Reload IWDG counter */
  IWDG_ReloadCounter();

  /* Enable IWDG (the LSI oscillator will be enabled by hardware) */
  IWDG_Enable();
}
沙发
芯行天下|  楼主 | 2009-5-25 10:30 | 只看该作者

IWDG寄存器设置

使用特权

评论回复
板凳
芯行天下|  楼主 | 2009-5-25 10:31 | 只看该作者

RCC寄存器设置

使用特权

评论回复
地板
香水城| | 2009-5-25 10:45 | 只看该作者

为什么说IWDG不工作?

从3楼的贴图看:RCC_CSR=0x28000003,bit29=1表示已经产生看门狗复位,为什么说IWDG不工作?

使用特权

评论回复
5
芯行天下|  楼主 | 2009-5-25 10:50 | 只看该作者

可是从我的程序运行效果上来看并没有发现程序复位的

从我的程序运行效果上来看,并没有发现程序复位的。

使用特权

评论回复
6
香水城| | 2009-5-25 10:55 | 只看该作者

什么程序?程序的运行效果是什么样的?

请问你的复位电路是什么样的?

关于判断程序是否复位,很简单的办法是在调试时,在程序开始放置一个断点,如果程序运行后又停到这个断点,就表示有复位产生。

使用特权

评论回复
7
芯行天下|  楼主 | 2009-5-25 10:59 | 只看该作者

运行效果

这是运行效果,如果复位,程序应该能停在第一个断点的,可是程序一直停在第二个断点处。
硬件就是ST这次送的三合一小板。

使用特权

评论回复
8
香水城| | 2009-5-25 11:18 | 只看该作者

看不出程序有什么问题

不要设置断点,直接运行试试。

使用特权

评论回复
9
芯行天下|  楼主 | 2009-5-25 11:22 | 只看该作者

实际运行时当然不会加第二个断点了,

第二个断点是我为了好看清图才加的,运行时当然没有第二个断点了。
呵呵,那是不行的,点击运行,不管等多长时间,再点停止,光标还是落在WHIEL(1)处的。程序就是不复位,很是不解呀。看寄存器都符合手册中说的。

使用特权

评论回复
10
静默| | 2009-5-25 11:38 | 只看该作者

不要用STLINK供电.

不要用STLINK供电, 你就可以看到看门狗的动作了. 点几个灯看看.

使用特权

评论回复
11
芯行天下|  楼主 | 2009-5-25 13:05 | 只看该作者

多谢楼上,不用STLINK供电,果然可以

多谢楼上,不用STLINK供电,看门狗可以正常工作。问题解决。

不知为什么用STLINK的时候,看门狗不工作,有哪位解释一下。难不成这就是文档中说的调试模式。

使用特权

评论回复
12
vigia| | 2009-5-25 15:17 | 只看该作者

我把ST的IWDG的例子移植到了3和1板子上试了试

可以产生复位信号的么。

LZ还是再检查下自己的程序。

移植的代码我先放上来你试试。
相关链接:https://bbs.21ic.com/upfiles/img/20095/2009525151456680.zip

使用特权

评论回复
13
芯行天下|  楼主 | 2009-5-26 09:03 | 只看该作者

多谢楼上,不知你的程序用STLINK能否正常复位

使用特权

评论回复
14
vigia| | 2009-5-26 09:28 | 只看该作者

可以阿

我就是用3合1的板子做的测试

难道你的不可以?

使用特权

评论回复
15
芯行天下|  楼主 | 2009-5-26 09:31 | 只看该作者

呵呵,我的是在LINK供电下不可以,单独供电就可以了

在仿真时不行,不用LINK单独供电可以复位。

使用特权

评论回复
16
vigia| | 2009-5-26 09:39 | 只看该作者

你试过我的代码了吗?

用ST-Link调试,不能复位吗?

使用特权

评论回复
17
芯行天下|  楼主 | 2009-5-26 13:05 | 只看该作者

还没有试,

楼上的开发环境是5.0以上的,我用的是4.22A的版本。等晚上再试。

使用特权

评论回复
18
PackBot| | 2010-8-16 20:38 | 只看该作者
:)刚刚从该讨论中受益,嘿嘿,

使用特权

评论回复
19
yybj| | 2010-8-17 09:02 | 只看该作者
这种问题似乎很常见,以后我也知道怎么解决了,嘿嘿

使用特权

评论回复
20
hitajian| | 2010-9-22 15:19 | 只看该作者
The user must ensure that the level on the NRST pin can go below the VIL(NRST) max level。 Otherwise the reset will not be taken into account by the device.

使用特权

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

本版积分规则

87

主题

660

帖子

0

粉丝