探究STM32低功耗的几种模式

发布者:哈哈哈33最新更新时间:2023-07-17 来源: elecfans关键字:STM32  低功耗  模式 手机看文章 扫描二维码
随时随地手机看文章

低功耗模式

本文讨论下STM32低功耗模式,先看如下手册。


对比了 STM32F0 和 STM32F1 两者进入低功耗是一样的,低功耗模式有三种:

睡眠模式,CM3 内核停止,外设仍然运行,此功耗是最高的

停止模式,所有时钟都停止,此功耗较低,典型大概在20uA左右

待机模式,1.8V 内核电源关闭,此功耗最低,典型大概在2uA左右

一般做开发大多都是选择停机模式,因为停机模式功耗较低,而且任一中断或事件都能唤醒。待机模式虽然功耗最低,电流只差10个微安,但是只有特定的事件和引脚可以唤醒,实时性不是很好。

先来看下官方库进入低功耗的方式。

void PWR_EnterSleepMode(uint8_t PWR_SLEEPEntry); //睡眠模式 void PWR_EnterSTOPMode(uint32_t PWR_Regulator, uint8_t PWR_STOPEntry); //停机模式void PWR_EnterSTANDBYMode(void); //待机模式

这里我们用到停机模式,有两个参数 。

第一个PWR_Regulator是选择电源是否进入低功耗。

#define PWR_Regulator_ON //电源不进低功耗 唤醒基本没延迟#define PWR_Regulator_LowPower //电源进去低功耗 不过唤醒启动有一点延迟

第二个参数PWR_STOPEntry选择唤醒的方式。

#define PWR_STOPEntry_WFI //中断唤醒#define PWR_STOPEntry_WFE //事件唤醒

停机模式唤醒后自动选择系统内部时钟,看自己的应用是否需要重新配置。如果你的系统时钟是HSI或者HSE是要重新配置,一般都需要重新配置,直接调用系统时钟配置函数。

另外停机模式唤醒后,flash程序是从中断或事件开始执行的。

如何做到停机模式更低功耗

代码

RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE); //使能时钟 PWR_EnterSTOPMode(PWR_Regulator_LowPower,PWR_STOPEntry_WFI);

上面代码第一个参数PWR_Regulator_LowPower是配置电源低功耗模式。第二个参数PWR_STOPEntry_WFI用来确定是中断唤醒还是事件唤醒,或者两者都要。

第二步你要把所有引脚IO口释放,全部配置成模拟输入状态,此时IO口几乎0消耗,具体见手册说明。

3ede9038-e0bf-11eb-9e57-12bb97331649.png

我们只要在进入低功耗之前把IO口配置一下就行了(根据自己应用需要配置IO),但是唤醒之后就要重新配置IO口了。

注意,在配置IO模拟输入之前,一定不要锁定IO口。我之前就踩了这个坑,在配置成模拟输入之前我们串口两个引脚锁定了导致我的功耗一直在90uA左右下不去。

正确配置的功耗在10uA左右,这功耗已经相当低了,用四节5号电池够你用至少1年了。


关键字:STM32  低功耗  模式 引用地址:探究STM32低功耗的几种模式

上一篇:STM32嵌入式开发,米尔STM32MP135核心板助力充电桩发展
下一篇:STM32F1 ADC主要特性和结构框图解析

推荐阅读最新更新时间:2024-11-10 07:19

STM32学习手记③-EXTI中断
用系统滴答定时器的精确定时函数,新手尽量少用,容易出错,还是用简单的延时操作好了。 抢占式优先级别与响应式优先级概念不懂,因为没看什么资料书就直接上程序了,以后有时间要看看相关方面的书。 STM的外部中断与51的不同,他的外部中断不是固定的IO口,例如,STM32有80个IO口,他每个IO口都可以映像到16个个外部中断,即PA3可以映像成外部中断1,也可以映像成外部中断2。 中断开启过程: 1、在RCC里将要使用的IO口时钟打开(为什么一定要设置RCC_APB2Periph_AFIO,不懂,待以后理解) 2、在GPIO里将该IO口映像到相应的外部中断 3、在NVIC里将该中断通道打开 中断使用注意事项:
[单片机]
STM32关于GPIO的问题
1、关于GPIO问:STM32的IO口初始化为输入浮空,那管脚是高电平还是低电平呢?答:既不是高电平也不是低电平,悬空的意思是没有使用的状态。2、有关stm32f103 端口复用的问题?问:在学习GPIO时,遇到到端口复用问题一直不能明白,我举个例子:PB6 PB7默认情况下是做普通IO使用的,当我想用I2C1是,我开启RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);当我要使用I2C1的重定义时,我要打开,RCC_APB1PeriphClockCmd(RCC_APB1Perip
[单片机]
stm32学习之五
按键输入的学习(key_polling): 目标:通过按键的输入,实现LED灯的反转等操作。 要实现按键的输入的读取,必须要实现一个key.c和key.h的文件的编写,这里,利用库函数的编写原则(仿照 库函数的编写方法),获取按键的动作。 首先,编写key.h函数: #ifndef _KEY_H #define _KEY_H #include stm32f10x.h #define KEY_ON 0 #define KEY_OFF 1 void key_Init(void); uint8_t key_Scan( GPIO_TypeDef * GPIOx, uint16_t GPIO_Pin ); void de
[单片机]
stm32 usb枚举过程
[单片机]
精准农业无线传感器网络
摘要:设计并实现精准农业无线传感器网路,用于监测农作物生长环境。用高性能、超低功耗单片机MSP430F149设计温湿度和光照强度传感器节点;用高性能32位ARM处理器LM3S6918设计汇聚节点,采用无线射频器件CC1000实现数据的无线收发;针对汇聚节点能量不限的特点,改进传统MAC协议,提出并实现了一种新的MAC层通信协议。实验证明,该网络具有生命周期长、稳定性好的优点,可以满足精准农业的环境监测要求。 精准农业被称为人类农业生产的一场革命,并依托于信息技术。准确实时的信息供给是精准农业的首要条件,它的实现依赖于大气温湿度、风速、光照强度况等多种先进的传感器。近年来,出现了许多采用无线公共网络等无线通讯方式进行农、林、牧业
[单片机]
精准农业无线传感器网络
STM32的JTAG、SWD和串口下载的问题
最近有一个项目用到STM32,为了使PCB布线方便一些所以改了一些引脚,占用了JTAG接口的PA15和PB3,所以要禁用一下JTAG,下载采用SWD模式。这样在实际操作中做出一些总结(方法网上都有、这里只是总结记录一下): 1:GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE); 改变指定管脚的映射 GPIO_Remap_SWJ_Disable SWJ 完全禁用(JTAG+SW-DP) 2:GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); 改变指定管脚的映射 GPIO_Remap_SWJ_JTAGDis
[单片机]
“隐身模式”下Chrome收集用户信息?谷歌被索赔超50亿美元
据路透社报道,谷歌于当地时间周二面临了一起索赔超50亿美元的集体诉讼,被指控通过设置为“隐身”模式的谷歌浏览器(Chrome)广泛地跟踪用户的互联网使用情况,从而非法侵犯了数百万用户的隐私。 根据递交给加州圣何塞联邦法院的诉状,不论用户是否点击了谷歌上的广告,谷歌都会通过谷歌Analytics、谷歌Ad Manager以及其他应用程序和网站插件(包括智能手机应用程序)收集数据。这有助于谷歌了解用户的朋友、爱好、最喜欢的食物、购物习惯,甚至他们在网上搜索的“最亲密和可能令人尴尬的事情”。 另外,诉状中指出,提议的分类可能包括“数百万”自2016年6月1日以来以“隐私”模式浏览互联网的谷歌用户,并要求谷歌每个用户至少赔偿5000美
[手机便携]
IAR环境下STM32+IAP方案的实现
一、什么是IAP,为什么要IAP IAP即为In Application Programming(在应用中编程),一般情况下,以STM32F10x系列芯片为主控制器的设备在出厂时就已经使用J-Link仿真器将应用代码烧录了,如果在设备使用过程中需要进行应用代码的更换、升级等操作的话,则可能需要将设备返回原厂并拆解出来再使用J-Link重新烧录代码,这就增加了很多不必要的麻烦。站在用户的角度来说,就是能让用户自己来更换设备里边的代码程序而厂家这边只需要提供给用户一个代码文件即可。 而IAP却能很好的解决掉这个难题,一片STM32芯片的Code(代码)区内一般只有一个用户程序。而IAP方案则是将代码区划分为两部分,两部分区
[单片机]
IAR环境下STM32+IAP方案的实现
热门资源推荐
热门放大器推荐
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved