打印

关于STM32 IWDG不复位

[复制链接]
6460|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xiaoerge|  楼主 | 2010-12-9 23:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这几天调试IWDG,发现总是不复位,但是看门狗复位的标志已经设置,翻遍了pdf,反正就是那几段话,没有丝毫发现,网上的帖子也基本大同小异,反正到了我这里就是不管用。
还好,今天把问题解决了,发个帖子记录一下。
我的电路在外部连接了一个LM809复位芯片,LM809的复位直接连接到了STM32的复位输入,然后还连了一个4.7K的上拉电阻。问题的关键在于,STM32的内部的复位源都要驱动到复位引脚,然后由复位引脚变低来产生复位信号。当内部复位源要将复位引脚拉低的时,LM809输出的是高电平,而STM32的复位输出也不够强,居然只能拉到1.5V左右,STM32完全不能识别。其实按理说三端复位芯片的高电平输出能力都挺弱的,谁知道STM32低电平输出也这么弱。
解决办法就是将LM809拆了了事。什么都好了。唉,伤脑筋
评论
yanbuyouzhong 2018-9-7 15:04 回复TA
既然有外部复位干嘛还用内部的IWDG呢。 
沙发
xiaoerge|  楼主 | 2010-12-9 23:11 | 只看该作者
早知道应该让LM809串个电阻再到STM32。

使用特权

评论回复
板凳
STARM| | 2010-12-11 21:23 | 只看该作者
mark

使用特权

评论回复
地板
sflower| | 2012-10-23 11:21 | 只看该作者
1楼你好,我的看门狗初始化如下,
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
        IWDG_SetPrescaler(IWDG_Prescaler_32);           //40/32=1.25          0.8ms
        IWDG_SetReload(1000);                      //2s
        IWDG_ReloadCounter();
        IWDG_Enable();              //为调试方便先不允许中断
        RCC_LSICmd(ENABLE);//打开LSI   因为独立看门狗使用的是LSI,所以最好程序启动的时候,使时钟源稳定:
    while(RCC_GetFlagStatus(RCC_FLAG_LSIRDY)==RESET);//等待直到LSI稳定

不喂狗,也不复位,不知怎么回事。我的硬件也有看门狗IMP811SEUS-T,请帮忙看看

使用特权

评论回复
5
sflower| | 2012-10-23 12:46 | 只看该作者
楼主你好,我发现我的板子也是硬件IMP811SEUS-T,影响的无法拉低,所以复位不了。你是怎么解决的?我不想去掉IMP811SEUS-T,有什么好办法吗?谢谢!

使用特权

评论回复
6
sflower| | 2012-10-23 12:47 | 只看该作者
早知道应该让LM809串个电阻再到STM32?有用吗?

使用特权

评论回复
7
sflower| | 2012-10-23 13:11 | 只看该作者
我在IMP811SEUS-T   串接一个4.7k电阻解决问题

使用特权

评论回复
8
gxliu08| | 2014-5-21 15:18 | 只看该作者
电容接地会不会影响?

使用特权

评论回复
9
icecut| | 2014-5-21 16:34 | 只看该作者
这的确有点难找问题.

使用特权

评论回复
10
ens1985| | 2015-12-4 15:45 | 只看该作者
果断去掉复位IC电路吧!改RC电路吧!我整IAP时软复位,看问狗复位都没有把复位脚拉低,就是因为复位IC与STM之间的驱动冲突

使用特权

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

本版积分规则

21

主题

106

帖子

1

粉丝