13259|13

80

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于STM32进入待机模式后很容易自动复位 [复制链接]

把STM32按照正确的时序进入待机模式之后, 一开始都还正常..外部中断是不能唤醒的, 除非在PA0(WAKE UP PIN)上加一个上升沿.
但是很奇怪的是, 我发现我开一下台灯, 系统居然自己复位了, 就好像我按了复位键或者按了PA0一样....随后发现,貌似外界有一点小小的干扰都会导致系统自己跑出待机模式...
请问大家有没有碰过这些问题啊?
PS:台灯放在开发板旁边,但是和开发板的电源是独立的. 另外有时候碰几下VDD那根线, 也会出现同样的问题.

以下是我进入待机模式的代码:

RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);
PWR_WakeUpPinCmd(ENABLE); //使能WAKE-UP管脚
PWR_EnterSTANDBYMode();   //主机进入待机模式(最低功耗)

系统复位之后,也会执行 PWR_WakeUpPinCmd(DISABLE); 这句代码

应该不会有错吧...
此帖出自stm32/stm8论坛

最新回复

我的是stm32 64封装的 那么多空脚,不可能不用的就接地和上拉啊,因为很多是io脚,会影响芯片的。  详情 回复 发表于 2011-7-25 14:33
点赞 关注
 

回复
举报

72

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
查一下是不是复位脚或者PA0容易受台灯干扰。
PA0:可以试着直接接地。
复位脚:可以试着直接接电源。
然后看看是否还受台灯干扰
此帖出自stm32/stm8论坛
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
之前都试过了....硬件上平时PA0接地的;
复位应该没问题,因为我试过一些没有进入待机模式的程序,无论外界怎么干扰,都不会自动复位.

然后PA0我直接断开,让他浮空,都不行...还是一开灯,程序就复位..
此帖出自stm32/stm8论坛
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

4
 
对于ARM芯片(包括STM32),从STANDBY模式唤醒,代码就从复位入口开始运行,基本上等同于复位。

如果有示波器(最好是数字示波器),建议看一下:Vdd、复位脚以及PA0,当开灯时这些引脚是什么状态。
此帖出自stm32/stm8论坛
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

5
 
                                 请在复位后,通过复位标志寄存器察看复位原因,也许会有所发现。
此帖出自stm32/stm8论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

6
 
版主你好!
无论是WAKE-UP复位,还是NRST复位,或者是外部一个小小的干扰引起的复位,复位后,RCC->CSR始终是0X0C000000
现在问题是比较明显,如果没有进入待机模式,外部无论怎么干扰,都不会复位
但是如果进入待机模式,外部只要一个很微弱的干扰,例如万用表任意一个档位接STM32的任意一个管教,都会引起WAKE UP事件....
此帖出自stm32/stm8论坛
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

7
 
                                 晕,在待机模式下......甚至是随便用一根导电的轻轻一碰任意一个无关的管脚,都会触发复位事件(或者是WAKE UP事件)
此帖出自stm32/stm8论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

8
 
                                 请问,在进入待机模式之前,那些无关的管脚都是处于什么配置模式?
此帖出自stm32/stm8论坛
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

9
 
无关的管脚是应该是复位之后的状态,我没有对它们进行配置.

很奇怪,找了很久,发现主要用一根杜邦线把PA0(也就是WAKE UP脚) 引出来(无论引线是悬空,或者接地) 之后, 就会发生这种问题, 比如随便拿一根导线去碰一下无关的管脚,就会唤醒系统.

但是如果不用杜邦线引出来, 一切都正常, 系统很稳定.

所以我觉得有可能是像按键抖动那样的问题?但是要对WAKE UP脚消抖,好像不太可能....奔溃了...
此帖出自stm32/stm8论坛
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

10
 
请把所有无用的管脚配置为模拟输入,或配置为推挽输出同时接地并输出'0'。

复位之后所有管脚为浮空输入状态,如果没有接任何外部电路,极易受到干扰。
此帖出自stm32/stm8论坛
 
 
 

回复

126

帖子

0

TA的资源

一粒金砂(初级)

11
 
版主...再次麻烦你....

按照你的指示,我把所有IO都配置为模拟输入或者推挽输出0, 在系统初始化前或者 在进入待机模式前 都设置一次. 结果还是原来那样子

有个问题我不太明白....
STM32的用户手册上写着:待机模式可实现系统的最低功耗。该模式是在Cortex-M3深睡眠模式时关闭电压调节器。整个1.8V供电区域被断电。PLL、HSI和HSE振荡器也被断电。SRAM和寄存器内容丢失。只有备份的寄存器和待机电路维持供电(见图4)。
(见STM32 RM_CH的 4.3.5节)
那就算之前配置了IO, 进入待机模式了这些配置也将是无效的啊?对吗?
此帖出自stm32/stm8论坛
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

12
 
你的理解是正确的,但是如果你的系统并没有真正地进入待机模式,则情形就不一样了;你可以检查一下,看看系统是否正地进入了待机模式。

还有一点就是系统中不要有悬空的管脚,不用的管脚都要把它们接到地或接到VCC,这样可以有效地避免各种干扰。
此帖出自stm32/stm8论坛
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(中级)

13
 

原帖由 niantianxia 于 2010-5-17 10:46 发表 查一下是不是复位脚或者PA0容易受台灯干扰。 PA0:可以试着直接接地。 复位脚:可以试着直接接电源。 然后看看是否还受台灯干扰
请问后来怎么解决的呀?

我也遇到了 很晕倒 不过不是台灯 我一上电就自动不停的复位。

此帖出自stm32/stm8论坛
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(中级)

14
 

回复 12楼 fish1983 的帖子

我的是stm32 64封装的 那么多空脚,不可能不用的就接地和上拉啊,因为很多是io脚,会影响芯片的。
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表