详解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消耗,具体见手册说明。
我们只要在进入低功耗之前把io口配置一下就行了(根据自己应用需要配置io),但是唤醒之后就要重新配置io口了。
    注意,在配置io模拟输入之前,一定不要锁定io口。我之前就踩了这个坑,在配置成模拟输入之前我们串口两个引脚锁定了导致我的功耗一直在90ua左右下不去。
    正确配置的功耗在10ua左右,这功耗已经相当低了,用四节5号电池够你用至少1年了。


PLC在电机控制中的典型应用
FPGA设计中动态时钟的使用方法
采用双闭环PI和重复控制方案实现三相逆变器设计并进行仿真分析
奥特维喜提开年第二个2.1亿元大订单
在工业和汽车领域中SCA3300高性能三轴MEMS加速度传感器有什么应用?
详解STM32低功耗模式
运算放大器输出达到地电平的电流源的设计方案
共模电感的作用是什么,它的设计要点有哪些
光纤传输的特点及在驱动电路中的应用
vivox20长城发布会进入倒计时,vivox20全部消息整合,还是更期待发布会吧!
超声电机的分类特点及应用
美国联合航空公司正在大多数飞机上使用紫外线辐射清洁飞行员驾驶舱
苏州成为中国大陆集成电路产业发展最快区域之一
高功率半导体激光器历史介绍
中国移动最新发布的主动安全 2.0 战略,提供可靠的网络安全产品
艾迈斯欧司朗的AS7331开创CMOS传感器全新设计组合
互联网、科技企业打响智能汽车争夺战 谁更胜一筹
Kudelski IoT加入“芯伙伴”技术合作计划,联手强化物联网端到端安全
L494设计的电动自行车充电器原理与检修
英特尔宣布收购初创公司SigOpt 推动下一代AI芯片的发展