OpenEdv-开源电子网

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

stm32进入停止模式和唤醒例程

[复制链接]

23

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
207
金钱
207
注册时间
2013-2-19
在线时间
0 小时
发表于 2013-7-18 19:25:12 | 显示全部楼层 |阅读模式
战舰开发板配套的例程有进入待机模式的例程,请教下原子大哥和做过的兄弟姐妹们,进入停止模式和唤醒应该怎么操作,我把例程修改如下,但是不知道应该怎么设置唤醒!
void Sys_Standby(void)
{  
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE); //使能PWR外设时钟
PWR_WakeUpPinCmd(ENABLE);  //使能唤醒管脚功能,PA0
PWR_EnterSTANDBYMode();  //进入待命(STANDBY)模式  
}

改为:
void Sys_Standby(void)
{  
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE); //使能PWR外设时钟
PWR_WakeUpPinCmd(ENABLE);  //使能唤醒管脚功能,PA0
PWR_EnterSTOPMode(PWR_Regulator_LowPower,PWR_STOPEntry_WFI);    
}

www.wxx3g.com
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

16

主题

204

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1910
金钱
1910
注册时间
2015-7-5
在线时间
485 小时
发表于 2015-8-20 09:36:23 | 显示全部楼层
PWR_EnterSTOPMode(PWR_Regulator_ON, WR_STOPEntry_WFI);  //唤醒后时钟变为内置8MHz,需要重新配置RCC,才能正常运行,否则PLL关闭。
SystemInit();
回复 支持 0 反对 1

使用道具 举报

23

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
207
金钱
207
注册时间
2013-2-19
在线时间
0 小时
 楼主| 发表于 2013-7-18 19:43:18 | 显示全部楼层
补充以下,差了相关资料,要唤醒必须把中断模式设置为事件模式,不知道能不能把一个IO口同时设置为EXTI_Mode_Interrupt 和 EXTI_Mode_Event 。。。谢谢原子大哥和回复的各位
www.wxx3g.com
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-18 22:13:45 | 显示全部楼层
停止模式我也没用过,貌似任意一个中断都可以唤醒的啊.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

23

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
207
金钱
207
注册时间
2013-2-19
在线时间
0 小时
 楼主| 发表于 2013-7-19 10:18:02 | 显示全部楼层
回复【3楼】正点原子:

停止模式我也没用过,貌似任意一个中断都可以唤醒的啊.

---------------------------------
实验了,确实是任意一个中断都能唤醒,但是唤醒后发现有延时现象,比如点个灯,大概延时500ms到1s 。。。
www.wxx3g.com
回复 支持 反对

使用道具 举报

3

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2014-4-25
在线时间
1 小时
发表于 2014-4-30 13:04:59 | 显示全部楼层
回复【4楼】wuxinxinggg:
---------------------------------
那是因为系统时钟切换到内部了,唤醒后要重新初始化系统时钟

stm32如果从停机模式下退出的话系统时钟会自动切换到内部时钟,所以就要重新配置时钟,停机指令的后面
回复 支持 反对

使用道具 举报

60

主题

204

帖子

0

精华

高级会员

Rank: 4

积分
503
金钱
503
注册时间
2014-2-28
在线时间
7 小时
发表于 2014-9-20 13:36:11 | 显示全部楼层
回复【4楼】wuxinxinggg:
---------------------------------
能上传个源码分享一下么?谢谢了
回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2012-12-21
在线时间
5 小时
发表于 2014-12-9 14:59:58 | 显示全部楼层
回复【4楼】wuxinxinggg:
---------------------------------
请教任意一个中断都能叫醒是怎么设置啊。有参考么?
回复 支持 反对

使用道具 举报

4

主题

61

帖子

0

精华

初级会员

Rank: 2

积分
97
金钱
97
注册时间
2013-12-3
在线时间
0 小时
发表于 2015-1-13 17:24:42 | 显示全部楼层
楼主,有做完这个停止模式吗?唤醒之后是怎么操作的,唤醒的话,时间不应该有500ms那么久的,处理好了吗?
帮助别人就是帮助自己!
回复 支持 反对

使用道具 举报

22

主题

92

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
446
金钱
446
注册时间
2014-4-7
在线时间
53 小时
发表于 2015-3-28 11:25:00 | 显示全部楼层
程序 能不能  发出来看看,谢谢了!!!
回复 支持 反对

使用道具 举报

10

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
301
金钱
301
注册时间
2016-1-6
在线时间
84 小时
发表于 2016-7-6 09:56:49 | 显示全部楼层
同求啊
回复 支持 反对

使用道具 举报

11

主题

200

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1154
金钱
1154
注册时间
2014-11-9
在线时间
228 小时
发表于 2016-7-25 08:28:01 | 显示全部楼层
任意一个外部中断都能够唤醒,是不是串口中断也能够唤醒?
回复 支持 反对

使用道具 举报

2

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2015-9-15
在线时间
18 小时
发表于 2016-9-6 15:41:12 | 显示全部楼层
WFI进入停止模式,PWR_EnterSTOPMode(PWR_Regulator_LowPower,PWR_STOPEntry_WFI);   所有中断模式的线EXIT都会唤醒,意思是只要要外部中断,程序就会进入中断函数,继续开始执行?只是在中断函数中要进行时钟初始化一下?
为什么我这就不能退出停止模式啊~~~,求助!
回复 支持 反对

使用道具 举报

9

主题

68

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
323
金钱
323
注册时间
2016-9-1
在线时间
78 小时
发表于 2016-9-9 19:07:59 | 显示全部楼层
fengweibo3 发表于 2016-9-6 15:41
WFI进入停止模式,PWR_EnterSTOPMode(PWR_Regulator_LowPower,PWR_STOPEntry_WFI);   所有中断模式的线EXIT ...

请问楼主解决了吗
怎么解决的呢
回复 支持 反对

使用道具 举报

2

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2015-9-15
在线时间
18 小时
发表于 2016-9-12 11:55:31 | 显示全部楼层
笨鸟多飞 发表于 2016-9-9 19:07
请问楼主解决了吗
怎么解决的呢

解决了,注意 ,如果是中断里进入的睡眠,则需要在更高优先级的中断里才能够唤醒,唤醒过后先执行中断里面的程序,不会和待机模式一样(复位现象);
回复 支持 反对

使用道具 举报

9

主题

68

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
323
金钱
323
注册时间
2016-9-1
在线时间
78 小时
发表于 2016-9-12 12:08:18 | 显示全部楼层
fengweibo3 发表于 2016-9-12 11:55
解决了,注意 ,如果是中断里进入的睡眠,则需要在更高优先级的中断里才能够唤醒,唤醒过后先执行中断里 ...

嗯嗯  好的 我也试过是这个结果了 谢谢!
回复 支持 反对

使用道具 举报

2

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
189
金钱
189
注册时间
2015-5-21
在线时间
43 小时
发表于 2016-11-29 14:52:28 | 显示全部楼层
楼主我和你遇到的情况一样,但是我将中断设置为事件中断还是不行,进入不了停机模式
回复 支持 反对

使用道具 举报

12

主题

76

帖子

0

精华

高级会员

Rank: 4

积分
986
金钱
986
注册时间
2017-4-3
在线时间
118 小时
发表于 2017-6-7 18:59:14 | 显示全部楼层
wuxinxinggg 发表于 2013-7-19 10:18
回复【3楼】正点原子:

                                                                        停止模式我也没用过,貌似任意一个中断都可以唤醒的啊.
                                                       
---------- ...

请问串口中断能唤醒么,用蓝牙给串口发数据,我试验了下,没成功呢
回复 支持 反对

使用道具 举报

5

主题

47

帖子

0

精华

高级会员

Rank: 4

积分
680
金钱
680
注册时间
2019-5-18
在线时间
101 小时
发表于 2019-5-20 14:22:36 | 显示全部楼层
请问用串口唤醒,如何才能在串口调试助手上打印出来那个用来唤醒它的字符,我的老是接收不到
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-18 19:14

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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