你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32进入和退出睡眠模式例程

[复制链接]
发布时间:2011-3-23 16:35
1设计要求
要求系统按如下方式进入和退出睡眠模式:
在系统启动2秒后,将RTC在3秒钟之后配置为产生一个报警事件,接着通过WFI指令使系统进入停机
模式。如果要唤醒系统到正常模式,可通过按Key按钮;否则,在3秒钟后,会产生RTC报警中断自动
将系统唤醒。一旦退出停机模式,系统时钟被配置成先前的状态(在停机模式下,外部高速振荡器
HSE和PLL是不可用的)。经过一段延时之后,系统将再次进入停机状态,并可按上述操作无限重复。

2 硬件电路设计
硬件电路采用与7.1小节应用实例一样硬件电路,可见图7-10。其中Key按钮用于通过PB9产生一个外
部中断,LED1、LED2、LED3、LED4则用于显示处理器所处的模式和中断触发情况。

3 软件程序设计
根据任务要求,程序内容主要包括:
(1) 配置GPIOB口,配置RTC,配置外部中断;   
(2) 配置PB口第9个引脚作为外部中断,下降延触发;配置RTC报警中断,上升沿触发;
(3) 两个中断服务子程序的内容分别是:切换LED2和LED3灯的状态;
整个工程包含3个源文件:STM32F10x.s、stm32f10x_it.c和main.c,其中STM32F10x.s为启动代码,
所有中断服务子程序均在stm32f10x_it.c中,其它函数则在main.c中。下面分别介绍相关的函数,
具体程序清单见参考程序。

函数SYSCLKConfig_STOP用于当处理器从停机模式唤醒之后,配置系统时钟、使能HSE和PLL,并以
PLL作为系统时钟源。当处理器处理停机模式的时候,HSE、PLL是不可用的。
函数GPIO_Configuration用于配置GPIO的PC6、PC7、PC8、PC9和PB9。
函数EXTI_Configuration用于配置外部中断线9(PB9)和17(RTC报警)。
函数NVIC_Configuration配置NVIC及中断向量表,这里主要是配置外部中断线9和17。
函数EXTI9_5_IRQHandler处理按钮Key(PB9)所触发的中断,其主要作用是将LED2灯的状态翻转一次。
函数RTCAlarm_IRQHandler处理RTC报警所触发的中断,其主要作用事将LED3 灯的状态翻转一次,
如果设置了唤醒标志则清除之。

运行过程:
(1) 使用Keil uVision3 通过ULINK 2仿真器连接实验板,打开实验例程目录PWR_TEST子目录
下的PWR.Uv2例程,编译链接工程;
(2) 选择软件调试模式,点击MDK 的Debug菜单,选择Start/Stop Debug Session项或Ctrl+F5键,
在逻辑分析仪中添加GPIOC_ODR.6、GPIOC_ODR.7、GPIOC_ODR.8、GPIOC_ODR.9,点击Run按钮即可
在逻辑分析仪中看到如图7-14,还可用Peripherals-General Port-GPIOB来模拟KEY按钮的动作;
(3) 选择硬件调试模式,选择Start/Stop Debug Session项或Ctrl+F5键,下载程序并运行,观察
LED灯的变化情况。注意,当目标系统进入停机模式之后,将无法使用仿真器进行调试了;
(4) 退出Debug模式,打开Flash菜单>Download,将程序下载到开发板的Flash中,按RESET键复位,
观察LED灯的情况,正常情况应为:系统处于运行模式时LED1亮、LED4灭;系统处于停机状态时LED1
灭、LED4亮;当按下KEY按钮时LED2灯状态发生反转;当发生RTC报警时LED3状态发生反转。

PWR_test.rar

下载

239.46 KB, 下载次数: 1938

收藏 1 评论39 发布时间:2011-3-23 16:35

举报

39个回答
dec88888888 回答时间:2011-4-26 14:04:11

回复:STM32进入和退出睡眠模式例程

回复第 1 楼 安 于2011-03-23 08:35:21发表:
学学一下!!!!!!!!!
pmtwll 回答时间:2011-5-11 22:28:38

RE:STM32进入和退出睡眠模式例程

学习一下,谢谢您
DSL1988 回答时间:2011-5-19 15:14:13

RE:STM32进入和退出睡眠模式例程

学习一下,谢谢您
cleverggs 回答时间:2011-5-24 10:41:40

RE:STM32进入和退出睡眠模式例程

很不错,值得学习!
liuchangyin 回答时间:2011-11-30 16:38:07

回复:STM32进入和退出睡眠模式例程

 
零危 回答时间:2012-3-7 21:30:58

回复:STM32进入和退出睡眠模式例程

非常感谢,很想看一下
like0831 回答时间:2012-5-22 12:00:45

回复:STM32进入和退出睡眠模式例程

MARK!来得晚了,还是要学习一下。
lds102 回答时间:2012-5-28 09:37:42

回复:STM32进入和退出睡眠模式例程

学习下,谢谢LZ。
www8www 回答时间:2012-6-4 17:44:57

回复:STM32进入和退出睡眠模式例程

学习借鉴一下!!!
1234下一页

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版