OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 21569|回复: 17

求助:STM32进入睡眠模式唤醒不了

[复制链接]

2

主题

13

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2012-5-10
在线时间
0 小时
发表于 2012-5-22 11:49:51 | 显示全部楼层 |阅读模式
 帮下吧,搞了好几天了,请你们帮下吧!发帖N多未曾被回复。。。能给力点嘛。。。
以下是我进入睡眠模式的代码:
void EnterSLEEP(u8 PWR_SLEEPEntry)
{
        All_PeriphClock_Enable();
        SCB->SCR |= SysCtrl_SLEEPONEXIT_Set;
        SCB->SCR &= ~SysCtrl_SLEEPDEEP_Set;
        if(PWR_SLEEPEntry == PWR_SLEEPEntry_WFI)           
                __WFI();                                       
        else
                __WFE();                                
}
而且在手册上说,退出要在外设控制寄存器中使能一个中断。这个我找不到是不是每个寄存器的CR?但是设置了也不好使。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165537
金钱
165537
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-5-22 11:52:38 | 显示全部楼层
回复【楼主位】lutianqian:
---------------------------------
楼主在本论坛发帖总共2个.
总帖子数6个.
这样叫N多?
另外第一个帖子有5个回复(这个是第二个),我不知道未曾被回复从何而来?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165537
金钱
165537
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-5-22 12:35:48 | 显示全部楼层
 在<<STM32参考手册>>有提到如何进入和退出,照做就可以了.




不过我还没实际做过睡眠模式的代码,所以无法给你提供参考代码,需要参考代码,可以百度一下.看看别人有没有做的.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

13

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2012-5-10
在线时间
0 小时
 楼主| 发表于 2012-5-22 15:03:12 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
呵呵。N多贴,在其他论坛发的~~~~(>_<)~~~~ 。恩,我是根据手册;来的。哎,可是就是退不出,网上查了好多,有的也是退不出,退得出的都是停止模式。。。。
回复 支持 反对

使用道具 举报

2

主题

13

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2012-5-10
在线时间
0 小时
 楼主| 发表于 2012-5-22 15:14:29 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
有个疑问,第一种退出说的那个外设控制寄存器是什么,一开始我理解成每个模块的CR。如果是的话,根本就不用在设置中断,因为前面设置中断了。如果说的是外设时钟的问题,那样外面也使能了,最后在进入之前我使能多次了,还是不行。外设控制寄存器是个啥啊
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165537
金钱
165537
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-5-22 20:11:31 | 显示全部楼层
网上没有别人弄过睡眠模式么?
我想肯定有吧.可以找别人的代码参考一下.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

13

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2012-5-10
在线时间
0 小时
 楼主| 发表于 2012-5-23 11:40:27 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
肯定有的,至少我百度了三四天没有一个。我只能说rp不好。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165537
金钱
165537
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-5-23 11:45:12 | 显示全部楼层
找两个给你参考下.
1,与非网的,需要注册,才能下载,你自己注册下吧:http://www.eefocus.com/bbs/article_244_128277.html
2,21IC关于这个的讨论,希望能帮到你.http://bbs.21ic.com/icview-309729-1-1.html
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

13

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2012-5-10
在线时间
0 小时
 楼主| 发表于 2012-5-24 11:14:09 | 显示全部楼层
回复【8楼】正点原子:
---------------------------------
恩,看过了啦。谢谢了。自己好好整算了。
回复 支持 反对

使用道具 举报

8

主题

90

帖子

0

精华

初级会员

Rank: 2

积分
146
金钱
146
注册时间
2012-7-27
在线时间
1 小时
发表于 2012-12-4 09:39:32 | 显示全部楼层
原子先生什么时候弄弄这个低功耗的东西,然后共享给我们呢
回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2012-9-5
在线时间
10 小时
发表于 2012-12-4 13:56:39 | 显示全部楼层
用任意中断就可以唤醒
回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2012-9-5
在线时间
10 小时
发表于 2012-12-4 14:04:05 | 显示全部楼层
原子哥 睡眠模式功耗也就降低20MA左右,我想问一下在睡眠模式下还可以怎样降低功耗,谢谢
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165537
金钱
165537
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-12-4 14:15:09 | 显示全部楼层
是你其他IC有功耗吧!
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

8

主题

78

帖子

0

精华

初级会员

Rank: 2

积分
193
金钱
193
注册时间
2013-12-27
在线时间
15 小时
发表于 2014-10-26 23:25:07 | 显示全部楼层
回复【13楼】正点原子:
---------------------------------
原子大虾你好  我的配置是这样的,进入睡眠模式,但是用串口接受中断唤不醒,(其他的中断也唤不醒),没有进入睡眠模式时串口接收中断正常。SCB->SCR寄存器值设置与手册说明一样。是否还有其它要求?(譬如硬件上引脚要接什么的要求?)
void Sys_Standby(void)
{
SCB->SCR &=0xfffffff9;//使能SLEEPDEEP位 (SYS->CTRL)    
//  RCC->APB1ENR|=1<<28;     //使能电源时钟     
//  PWR->CSR|=1<<8;          //设置WKUP用于唤醒
// PWR->CR|=1<<2;           //清除Wake-up 标志
// PWR->CR|=1<<1;           //PDDS置位   
WFI_SET();  //执行WFI指令  
}
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165537
金钱
165537
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-10-27 13:21:23 | 显示全部楼层
回复【14楼】zzz1223887687:
---------------------------------
 没用过睡眠模式。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

8

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2015-4-15
在线时间
11 小时
发表于 2015-7-29 15:56:57 | 显示全部楼层

进入睡眠模式直接执行__WFI()或__WFE,无需设置SCB->SCR的SLEEPDEEP和SLEEPONEXIT位,有中断就可以退出睡眠模式。

如果置位SLEEPONEXIT,那么在执行完唤醒MCU的中断后,自动再进入睡眠,没有返回到主循环中。

回复 支持 反对

使用道具 举报

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2016-6-8
在线时间
38 小时
发表于 2016-8-17 11:22:16 | 显示全部楼层
BrightSunnySky 发表于 2015-7-29 15:56
进入睡眠模式直接执行__WFI()或__WFE,无需设置SCB-&gt;SCR的SLEEPDEEP和SLEEPONEXIT位,有中断就可以退 ...

在WFE模式下不是必须清除NVIC和外设的中断标志吗
捕获.PNG
回复 支持 反对

使用道具 举报

0

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
133
金钱
133
注册时间
2019-8-6
在线时间
32 小时
发表于 2019-8-22 14:24:02 | 显示全部楼层
帮顶帮顶帮顶
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-13 20:48

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表