第22章 RTX 低功耗之停机模式
以下内容转载自安富莱电子: http://forum.armfly.com/forum.php
STM32F103 停机模式介绍
本章节我们主要讲解停机模式,停机模式是在 Cortex™-M3 的深睡眠模式基础上结合了外设的时钟
控制机制,在停止模式下电压调节器可运行在正常或低功耗模式。此时在 1.8V 供电区域的的所有时钟都
被停止, PLL、 HSI 和 HSE RC 振荡器的功能被禁止, SRAM 和寄存器内容被保留下来。在停止模式下,
所有的 I/O 引脚都保持它们在运行模式时的状态。
STM32F103 如何进入停机模式
在 RTX 系统中,让 STM32 进入停机模式比较容易,调用固件库函数 PWR_EnterSTOPMode 即可 。
不过要注意:为了进入停机模式,所有的外部中断的请求位(挂起寄存器(EXTI_PR))和 RTC 的闹钟标志都必须被清除,否则停止模式的进入流程将会被跳过,程序继续运行。
STM32F103 如何退出停机模式
由于我们是采用指令 WFI 指令进入停机模式,那么设置任一外部中断线 EXTI 为中断模式并且在 NVIC
中必须使能相应的外部中断向量,就可以使用此中断唤醒停机模式。
在开发板上面是将实体按键 K2 对应的引脚设置为中断方式触发。按下此按键会将系统从停机模式唤醒。
STM32F103 使用停机模式注意事项
使用停机模式注意以下两个问题:
进入停机模式前,一定要关闭滴答定时器,实际测试发现滴答定时器中断也能唤醒停机模式。
当一个中断或唤醒事件导致退出停机模式时,HSI RC 振荡器被选为系统时钟。这个时候用户要根据
需要重新配置时钟,如果使用的 HSE 时钟,那么要重新配置并使能 HSE 和 PLL。
STM32F407 停机模式介绍
本章节我们主要讲解停机模式,停机模式基于 Cortex™-M4F 深度睡眠模式与外设时钟门控。调压器
既可以配置为正常模式,也可以配置为低功耗模式。在停止模式下,1.2 V 域中的所有时钟都会停止,PLL、
HSI 和 HSE RC 振荡器也被禁止。内部 SRAM 和寄存器内容将保留。在停止模式下,所有的 I/O 引脚都保
持它们在运行模式时的状态。
STM32F407 如何进入停机模式
在 RTX 系统中,让 STM32 进入停机模式比较容易,调用固件库函数 PWR_EnterSTOPMode 即可,
不过要注意:为了进入停止模式,所有 EXTI 线挂起位(在挂起寄存器 (EXTI_PR)中)、 RTC 闹钟(闹钟 A
和闹钟 B)、 RTC 唤醒、 RTC 入侵和 RTC 时间戳标志必须复位,否则停止模式的进入流程将会被跳过,程
序继续运行。
STM32F407 如何退出停机模式
由于我们是采用指令 WFI 指令进入停机模式,那么设置任一外部中断线 EXTI 为中断模式并且在 NVIC
中必须使能相应的外部中断向量,就可以使用此中断唤醒停机模式。
在开发板上面是将实体按键 K2 对应的引脚设置为中断方式触发。按下此按键会将系统从停机模式唤
醒。
STM32F407 使用停机模式注意事项
使用停机模式注意以下两个问题:
进入停机模式前,一定要关闭滴答定时器,实际测试发现滴答定时器中断也能唤醒停机模式。
当一个中断或唤醒事件导致退出停机模式时,HSI RC 振荡器被选为系统时钟。这个时候用户要根据
需要重新配置时钟,如果使用的 HSE 时钟,那么要重新配置并使能 HSE 和 PLL。
如何有效降低停机模式下的功耗
设计低功耗主要从以下几方面着手:
注意 I/O 的状态。因为在停机状态下,所有的 I/O 引脚都保持它们在运行模式时的状态。
如果此 I/O 口带上拉,请设置为高电平输出或者高阻态输入。
如果此 I/O 口带下拉,请设置为低电平输出或者高阻态输入。
注意 I/O 和外设 IC 的连接。
测试低功耗的时候,一定不要连接调试器,更不能边调试边测电流。
PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI);进入低功耗模式会一直等待中断来唤醒。
K2按键只做唤醒功能:
单片机测试功耗,一般采取测试电流的方式,也是使用电流来衡量的,在VCC 3.3v处串联一个10-20欧的精密电阻,就可以测出电阻的电压,除以电阻求得电流。P=UI。
第22章 RTX 低功耗之停机模式的更多相关文章
- 第21章 RTX 低功耗之睡眠模式
低功耗是 MCU 的一项非常重要的指标,比如某些可穿戴的设备,其携带的电量有限,如果整个电路消耗的电量特别大的话,就会经常出现电量不足的情况,影响用户体验. 本章节为大家讲解 M3/4的低功耗方式之睡 ...
- 第23章 RTX 低功耗之待机模式
以下内容转载自安富莱电子: http://forum.armfly.com/forum.php STM32F103 待机模式介绍 本章节我们主要讲解待机模式,待机模式可实现系统的最低功耗.该模式是在 ...
- FreeRTOS 低功耗之停机模式
以下转载自安富莱电子: http://forum.armfly.com/forum.php STM32F103 如何进入停机模式在 FreeRTOS 系统中,让 STM32 进入停机模式比较容易,调用 ...
- STM32——项目需求之低功耗的停机模式
在说低功耗之前,先要明白一个东西,那就是stm32中的事件和中断. 事件是中断的触发源,开放了对应的中断屏蔽位,则事件可以触发相应的中断.在STM32中,中断与事件不是等价的,一个中断肯定对应一个事件 ...
- FreeRTOS 低功耗之 tickless 模式
以下转载自安富莱电子: http://forum.armfly.com/forum.php 本章节为大家讲解 FreeRTOS 本身支持的低功耗模式 tickless 实现方法,tickless 低功 ...
- 第22章 职责链模式(Chain of Responsibility)
原文 第22章 职责链模式(Chain of Responsibility) 职责链模式 导读:职责链模式是一个既简单又复杂的设计模式,刚开始学习这个设计模式的时候光示例都看了好几遍.就为了理清里面的 ...
- 设计模式之第22章-组合模式(Java实现)
设计模式之第22章-组合模式(Java实现) “鱼哥,有没有什么模式是用来处理树形的“部分与整体”的层次结构的啊.”“当然”“没有?”“有啊.别急,一会人就到了.” 组合模式之自我介绍 “请问你是?怎 ...
- 【STM32H7教程】第22章 STM32H7的SysTick实现多组软件定时器
完整教程下载地址:http://forum.armfly.com/forum.php?mod=viewthread&tid=86980 第22章 STM32H7的SysTick实现 ...
- 【二代示波器教程】第13章 RTX操作系统版本二代示波器实现
第13章 RTX操作系统版本二代示波器实现 本章教程为大家讲解RTX操作系统版本的二代示波器实现.主要讲解RTOS设计框架,即各个任务实现的功能,任务间的通信方案选择,任务栈,系统栈以及全局 ...
随机推荐
- git学习笔记(二)—— 创建版本库&&版本管理
一.创建版本库 创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录: mkdir gitHub_CXWcd gitHub_CXW git init Initialized empty G ...
- magento直接操作数据库
查: $read = Mage::getSingleton("core/resource")->getConnection('core_read'); $sq ...
- jQuery.ajax发送image请求格式
1\请求端 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head run ...
- Linux定时器工具
要使用crontab定时器工具,必须要启动cron服务: service cron start crontab的语法,以备日后救急 参见:http://blog.csdn.net/zlzlei/art ...
- OpenCV 学习笔记 02 使用opencv处理图像
1 不同色彩空间的转换 opencv 中有数百种关于不同色彩空间的转换方法,但常用的有三种色彩空间:灰度.BRG.HSV(Hue-Saturation-Value) 灰度 - 灰度色彩空间是通过去除彩 ...
- C++ 虚函数表浅析
一.背景知识(一些基本概念) 虚函数(Virtual Function):在基类中声明为 virtual 并在一个或多个派生类中被重新定义的成员函数. 纯虚函数(Pure Virtual Functi ...
- 如何将shell的打印日志输入到日志文件
如果shell打印的日志很多,屏幕无法完全显示,需要查看shell执行的情况,这是就需要输入到日值了: 如:echo "2012-6-14" | tee -a my.log -a表 ...
- libsvm参数说明[zz]
English:libsvm_options:-s svm_type : set type of SVM (default 0) 0 -- C-SVC 1 -- nu-SVC 2 -- one-cla ...
- 如何在Linux平台下安装JDK
原文链接:http://android.eoe.cn/topic/android_sdk 1.下载Java的开发包JDK: JDK有好几个类型版本,我们只需要选择Java SE类型的版本就行了. 进入 ...
- android辅助开发工具包介绍
辅助开发工具包(ADK)是为硬件制造商和业余爱好者准备的参考实现.硬件制造商和业余爱好者可以使用此工具包作为开发Android辅助设备的起点.每一个ADK发行版都将提供源代码和硬件规格,以使整个辅助设 ...