历史上的今天
今天是:2025年03月29日(星期六)
2019年03月29日 | STM32之低功耗——WKUP待机唤醒(LCD显示)
2019-03-29 来源:eefocus
单片机的低功耗
很多单片机有低功耗模式,STM32也不例外。在系统或者电源复位后,微控制器出于运行状态之下,HCLK为CPU提供时钟,内核执行代码。当CPU不需要继续运行时,可以利用多种低功耗模式来节省功耗,例如等待某个事件触发。
STM32电源框图

STM32的三种低功耗模式
睡眠模式:内核停止,外设如NVIC,系统时钟Systick仍运行。
停止模式:所有时钟都已停止。1.8V内核电源工作。
PLL,HIS和HSE RC振荡器功能禁止。
寄存器和SRAM内容保留。
待机模式:1.8V内核电源关闭。
只有备份寄存器和待机电路维持供电。
寄存器和SRAM内容全部丢失。实现最低功耗。
低功耗配置图(详细配置参考STM32参考手册)

睡眠模式

停止模式

待机模式

电源控制寄存器
PWR_CR电源控制寄存器

PWR_CSR电源控制/状态寄存器

部分相关代码
进入待机模式
/*进入待机模式*/
void Wkup_Standby(void)
{
//复位全部IO
RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOA|
RCC_APB2Periph_GPIOB|
RCC_APB2Periph_GPIOC|
RCC_APB2Periph_GPIOD|
RCC_APB2Periph_GPIOE|
RCC_APB2Periph_GPIOF|
RCC_APB2Periph_GPIOG,ENABLE);
//RCC PWR
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);
//WKUP Cmd
PWR_WakeUpPinCmd(ENABLE);
//进入待机模式
PWR_EnterSTANDBYMode();
}
WKUP初始化
//WKUP Init
void Wkup_Init()
{
GPIO_InitTypeDef GPIO_InitTypeStruct;
EXTI_InitTypeDef EXTI_InitTypeStruct;
NVIC_InitTypeDef NVIC_InitTypeStruct;
//RCC GPIOA AFIO
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE);
//PA0 IUD
GPIO_InitTypeStruct.GPIO_Mode = GPIO_Mode_IPD;
GPIO_InitTypeStruct.GPIO_Pin = GPIO_Pin_0;
GPIO_InitTypeStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitTypeStruct);
// Config EXTI
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource0);
EXTI_InitTypeStruct.EXTI_Line = EXTI_Line0;
EXTI_InitTypeStruct.EXTI_LineCmd = ENABLE;
EXTI_InitTypeStruct.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitTypeStruct.EXTI_Trigger = EXTI_Trigger_Rising;
EXTI_Init(&EXTI_InitTypeStruct);
//IT config
NVIC_InitTypeStruct.NVIC_IRQChannel = EXTI0_IRQn;
NVIC_InitTypeStruct.NVIC_IRQChannelCmd = ENABLE;
NVIC_InitTypeStruct.NVIC_IRQChannelPreemptionPriority = 1;
NVIC_InitTypeStruct.NVIC_IRQChannelSubPriority = 3;
NVIC_Init(&NVIC_InitTypeStruct);
if(Wkup_Keydelay() == 0) Wkup_Standby();
}
下一篇:stm32的待机模式解析
史海拾趣
|
SD卡的动态插入与拔出,在AP层怎么检测?必须自己写个小的驱动?还是只能用定时器不断查询其状态? SD卡的动态插入与拔出,在AP层怎么检测?必须自己写个小的驱动?还是只能用定时器不断查询其状态?… 查看全部问答> |
|
最近读书生活费存了点,准备买几本书,首先我准备 看点板级开发/嵌入式方面的。 我自己要买的书有2本 《c++ primer 4》 (看了2遍了,还是准备买本)和《代码大全 2》。 SO 再推荐基本 板级开发/嵌入式方面 的 ...… 查看全部问答> |
|
天津电子口岸发展有限公司 天津电子口岸发展有限公司是在天津市政府与海关总署等有关部委的支持下创立的,注册资金3000万元。公司承担 “天津国际航运中心和物流中心暨天津电子口岸信息系统”的建设和运营工作,根据公司发展需要,现诚聘如下职 ...… 查看全部问答> |
|
replyreload += \',\' + 691869;果汁LED灯的制作方法: 一 需要的材料: 纸 一个发光二极管(LED) 一个水果(苹果、梨等) 长25cm的铜线(直径1-2 mm) 长25cm的铁线(直径1-2 mm) 二、需要的工具: 电烙铁 焊锡 剪刀 ...… 查看全部问答> |
|
工程使用一个MSP430G2231MCU模拟了SONY红外遥控器的发射时序。实现了音量大小及开关机功能。红外发射电路如下图所示:整机效果图:源代码#include \"msp430g2231.h\"#define T600us 23 & ...… 查看全部问答> |
|
下面讲的是电路自动对电池进行修复。 在使用时,将电源VCC 接开关电源的+12V,将A、B两点分别接到电池的正、负极(可用专用电池盒,也可自制电池盒将电池接入电路),加电后让电路自动间歇工作对电池进行大电流间歇“冲击”,逐步激活“休眠”状态的 ...… 查看全部问答> |
|
【Hercules】基于TMS570的CAN通信接口板设计第三波系统的原理与设计 1 控制器局域网CAN控制局域网(ControlArea NetWork —CAN)是国际上应用最为广泛的现场总线之一。它是一种多控节点、双向数字通讯的串行网络通信协议,由于其不仅拥有卓越的性能和低廉的价格还能有效地支持具有高安全等级的分布实时控制,故CAN总线越 ...… 查看全部问答> |




