以下转载自安富莱电子: http://forum.armfly.com/forum.php

STM32F103 如何进入停机模式
在 FreeRTOS 系统中,让 STM32 进入停机模式比较容易,调用固件库函数 PWR_EnterSTOPMode
即可,不过要注意:为了进入停机模式,所有的外部中断的请求位(挂起寄存器(EXTI_PR))和 RTC 的闹钟
标志都必须被清除,否则停止模式的进入流程将会被跳过,程序继续运行。
STM32F103 如何退出停机模式
由于我们是采用指令 WFI 指令进入停机模式,那么设置任一外部中断线 EXTI 为中断模式并且在 NVIC
中必须使能相应的外部中断向量,就可以使用此中断唤醒停机模式。
在开发板上面是将实体按键 K2 对应的引脚设置为中断方式触发。按下此按键会将系统从停机模式唤
醒。
STM32F103 使用停机模式注意事项
使用停机模式注意以下两个问题:
 进入停机模式前,一定要关闭滴答定时器,实际测试发现滴答定时器中断也能唤醒停机模式。
 当一个中断或唤醒事件导致退出停机模式时,HSI RC 振荡器被选为系统时钟。 这个时候用户要根据
需要重新配置时钟,如果使用的 HSE 时钟,那么要重新配置并使能 HSE 和 PLL。

STM32Fxx 如何进入停机模式
在 FreeRTOS 系统中,让 STM32 进入停机模式比较容易,调用固件库函数 PWR_EnterSTOPMode
即可,不过要注意:为了进入停机模式,所有 EXTI 线挂起位(在挂起寄存器 (EXTI_PR)中)、 RTC 闹钟
(闹钟 A 和闹钟 B)、 RTC 唤醒、 RTC 入侵和 RTC 时间戳标志必须复位,否则停机模式的进入流程将会被
跳过,程序继续运行。
STM32F4xx 如何退出停机模式
由于我们是采用指令 WFI 指令进入停机模式,那么设置任一外部中断线 EXTI 为中断模式并且在 NVIC
中必须使能相应的外部中断向量,就可以使用此中断唤醒停机模式。
在开发板上面是将实体按键 K2 对应的引脚设置为中断方式触发,按下此按键会将系统从停机模式唤
醒。
STM32F4xx 使用停机模式注意事项
使用停机模式注意以下两个问题:
 进入停机模式前,一定要关闭滴答定时器,实际测试发现滴答定时器中断也能唤醒停机模式。
 当一个中断或唤醒事件导致退出停机模式时,HSI RC 振荡器被选为系统时钟。 这个时候用户要根据
需要重新配置时钟,如果使用的 HSE 时钟,那么要重新配置并使能 HSE 和 PLL。

如何有效降低停机模式下的功耗
设计低功耗主要从以下几方面着手:
 注意 I/O 的状态。 因为在停机状态下,所有的 I/O 引脚都保持它们在运行模式时的状态。
 如果此 I/O 口带上拉,请设置为高电平输出或者高阻态输入。
 如果此 I/O 口带下拉,请设置为低电平输出或者高阻态输入。
 注意 I/O 和外设 IC 的连接。
 测试低功耗的时候,一定不要连接调试器,更不能边调试边测电流。

F429关于低功耗的停机模式说明:
(1) 停机模式是在 Cortex-M4F 的深睡眠模式基础上结合了外设的时钟控制机制,在停机模式下
电压调节器可运行在正常或低功耗模式。此时在 1.2V 供电区域的的所有时钟都被停止,PLL、
HSI 和 HSE 的 RC 振荡器的功能被禁止,SRAM 和寄存器内容被保留下来。
(2) 在停机模式下,所有的 I/O 引脚都保持它们在运行模式时的状态。
(3) 一定要关闭滴答定时器,实际测试发现滴答定时器中断也能唤醒停机模式。
(4) 当一个中断或唤醒事件导致退出停机模式时, HSI RC 振荡器被选为系统时钟。
(5) 退出低功耗的停机模式后,需要重新配置使用 HSE。

最新文章

  1. BZOJ1598: [Usaco2008 Mar]牛跑步
  2. Mac 使用技巧
  3. 2015-08-26: GCC编译选项(转载)
  4. php基础教程-语法
  5. 用python查看URL编码的中文
  6. List集合即其遍历
  7. sql server2005主从数据库同步配置
  8. DevExpress XtraReports 入门二 创建 data-aware(数据感知) 报表
  9. 我的Mac应用
  10. android studio修改项目包名
  11. python-浅拷贝和深拷贝
  12. 【算法和数据结构】_14_小算法_Blank字符替换
  13. 51Nod-1441 士兵的数字游戏
  14. 嵌入式开发之hi3519---i2c EEPROM
  15. vim 多个文件切换 :b 命令
  16. pandas.concat连接dataframe
  17. luoguP1354房间最短路问题
  18. HDU 1403 Longest Common Substring(后缀自动机——附讲解 or 后缀数组)
  19. git学习笔记三
  20. vs2017 vs2013等vs中如何统计整个项目的代码行数

热门文章

  1. MSSQL-SQL SERVER一些使用中的技巧
  2. 关于iOS Category实现添加属性及成员变量
  3. HDUOJ1086You can Solve a Geometry Problem too
  4. CocoaPods的ruby问题 Error fetching http://ruby.taobao.org/:
  5. List 集合remove问题
  6. 上传一个 游戏server架构图
  7. Git 基本分支规范
  8. JavaScript / Html 转 pdf、图片
  9. 深入浅出Node.js--数据通讯,NET模块运行机制
  10. linux怎么查看一个文件夹的大小