历史上的今天
今天是:2025年08月13日(星期三)
2019年08月13日 | STM32-(33):低功耗模式与唤醒
2019-08-13 来源:eefocus
功耗管理
很多单片机都有低功耗模式,STM32也不例外。在系统或电源复位以后,微控制器处于运行状态。运行状态下的HCLK为CPU提供时钟,内核执行程序代码。当CPU不需继续运行时,可以利用多个低功耗模式来节省功耗,例如等待某个外部事件时。
用户需要根据最低电源消耗,最快速启动时间和可用的唤醒源等条件,选定一个最佳的低功耗模式。
STM32的低功耗模式有3种:
睡眠模式(CM3内核停止,外设仍然运行)
停止模式(所有时钟都停止)
待机模式(1.8V内核电源关闭)
在这三种低功耗模式中,最低功耗的是待机模式,在此模式下,最低只需要2uA左右的电流。停机模式是次低功耗的,其典型的电流消耗在20uA左右。最后就是睡眠模式了。用户可以根据自己的需求来决定使用哪种低功耗模式。
此外,在运行模式下,可以通过以下方式中的一种降低功耗:
降低系统时钟
关闭APB和AHB总线上未被使用的外设的时钟。
三种低功耗模式

1、睡眠模式下,CPU时钟处于停止状态,但是所有的外设继续运行,电源功耗耗相应地减少。任一中断或唤醒事件可将微处理器从睡眠模式中唤醒。
2、停止模式是在 CorteX-M3的深睡眠模式基础上结合了外设的时钟控制机制,在停止模式下电压调节器可运行在正常或低功耗模式。此时在1.8 V 供电区域的的所有时钟都被停止, PLL、HIS和 HSE RC振荡器的功能被禁止, SRAM 和寄存器内容被保留下来。
3、待机模式可实现系统的最低功耗。该模式是在 CorteX-M3深睡眠模式时关闭电压调节器。整个1.8V供电区域被断电。 PLL、HSI和 HSE 振荡器也被断电。SRAM和寄存器内容丢失。只有备份的寄存器和待机电路各维持供电 。
重点分析待机模式


1、 在进入待机模式后,除了复位引脚以及被设罝为防侵入或校准输出时的TAMPER引脚和被使能的唤醒引脚(WK_UP脚),其他的IO引脚都将处于高阻态。
2、 从待机模式唤醒后,除了电源控制/状态寄存器(PWR_CSR) , 所有寄存器被复位。从待机模式唤醒后的代码执行等同于复位后的执行。
电源控制寄存器(PWR_CR)
1.通过设置PWR_CR中的PDDS位,使CPU进入深度睡眠时进入待机模式,同时通过CWUF位,清除之前的唤醒位。
电源控制/状态寄存器(PWR_CSR)
通过设置PWR_CSR的EWUP位,来使能WKUP引脚用于待机模式唤醒。我们还可以从WUF来检查是否发生了唤醒事件。
从待机模式唤醒步骤
1 )使能电源时钟•
因为要配置电源控制寄存器,所以必须先使能电源时钟。
在库函数中,使能电源时钟的方法是:
RCC_APB1PeriphClockCmd ( RCC_APB1Peripli_PWR, ENABLE ): //使能 PWR 外设时钟
2 ) 设 置WK_UP引脚作为唤醒源.
使能时钟之后再设置PWR_CSR的 EWUP 位,使能 WK_UP 用于将 CPU 从待机模式唤醒。
在库函数中,设置使能 WK_UP 用于唤醒CPU 待机模式的函数是:
PWR_WakeUpPinCmd(ENABUE); // 使能唤醒管脚功能
设置 SLEEPDEEP 位,设置 PDDS 位,执行 WFI 指令,进入待机模式.
void PWR_EnterSTANDBYMode(void ):最后编写WK_UP中断函数.
因为我们通过 WK_UP 中断 ( PA0 中断)来唤醒CPU, 所以我们有必要设置一下该中断函
数,同时我们也通过该函数里面进入待机模式
实验
实现如下功能:通过长按(3秒)WK_UP按键开机,并且通过LED的闪烁指示程序已经开始运行,再次长按该键,则进入待机模式,LED灯关闭,程序停止运行。类似于手机的开关机。
中断设置初始化函数

主函数

史海拾趣
|
作为汽车产业与电子产业的完美结合,汽车电子业的发展相对于汽车市场而言更加迅猛。据估计,近几年的年增长率均超过50%,是拉动汽车工业发展的重要因素。到目前为止,绝大多数国外大型的跨国汽车电子企业已在中国设厂。为了进一步扩大在中国的市场 ...… 查看全部问答> |
|
艾克赛尔(Axelwave)无线网络――无线监控在高速公路的应用 近年来中国经济的飞速发展,使中国的公路建设,尤其是高速公路的建设上了一个新台阶。而随着现代化高速公路的建设,新一代高速公路视频监控系统,日益成为高速公路监管的重要手段。无线监控凭借其简便、快速、受环境影响小的特点,也逐步成为高速公 ...… 查看全部问答> |
|
在基于软件无线电的某无线通信信号侦收平台的设计中,天线接收到的信号经过变频器处理和A/D变换之后,经过高速通道把采集的信号送入主控板进行数据分发处理。系统的结构框图如图1所示。 图1 主控板的系统结构框图 主控板的硬件核 ...… 查看全部问答> |
|
wince提供的api只能录制成wave吧? 录成mp3需要使用开源的lame库? 我现在在模拟器上能录制成wave, 调用lame库把wave转成mp3不成功,似乎是lame库内存异常了. 哪位大侠有CE5.0下能用的lame库? 或者还有其它方式能直接录成mp3? 我的邮箱:victor_20 ...… 查看全部问答> |
|
signal abc: std_logic_vector(5 downto 0):=(others=>\'0\');困扰很久,一直不明白。哪位大侠能给详解一下?谢谢!… 查看全部问答> |
|
【有圖有真相】基于MSP430 LaunchPad 和2.4G RF Module 的聊天室 前段時間在論壇的活動中拿了MSP430 LaunchPad,總要起點作用吧。 就做了這個史上最無聊,最無用的聊天工具。辦公室的工程師每人分一塊LaunchPad,接上我們公司常用的2.4G RF Module 用VB寫了個上位機軟件 然后就可以大家一起吹水了。 史上最 ...… 查看全部问答> |




