STM32-待机唤醒实验

STM32低功耗模式:

  1. 睡眠模式:CM3内核停止工作;外设运行
  2. 停机模式:时钟都停止
  3. 待机模式:1.8v内核电源关闭;功耗最低

(配置了RTC时钟不是以下步骤看数据手册)

代码流程:

  • 使能电源时钟
  • 设置WK_UP脚为唤醒源
  • 进入待机模式

代码如下

cs 复制代码
#include "wkup.h"

/*******************************************************************************
* 函 数 名         : Enter_Standby_Mode
* 函数功能		   : 进入待机模式
* 输    入         : 无
* 输    出         : 无
*******************************************************************************/
void Enter_Standby_Mode(void)
{
		
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);//使能PWR外设时钟
	
	PWR_ClearFlag(PWR_FLAG_WU);//清除Wake-up 标志
	
	PWR_WakeUpPinCmd(ENABLE);//使能唤醒管脚	使能或者失能唤醒管脚功能
	
	
	PWR_EnterSTANDBYMode();//进入待机模式
}

主函数代码(一定要在初始前增加延时只有在延时期间才能烧录代码)

cs 复制代码
#include "system.h"
#include "SysTick.h"
#include "led.h"
#include "usart.h"
#include "wkup.h"


/*******************************************************************************
* 函 数 名         : main
* 函数功能		   : 主函数
* 输    入         : 无
* 输    出         : 无
*******************************************************************************/
int main()
{
	SysTick_Init(72);
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);  //中断优先级分组 分2组
	LED_Init();
	USART1_Init(115200);
	
	while(1)
	{
		printf("time: 5\r\n");
		LED1=0;
		delay_ms(1000);	//隔1秒显示计数
		
		printf("time: 4\r\n");
		LED1=1;
		delay_ms(1000);
		
		printf("time: 3\r\n");
		LED1=0;
		delay_ms(1000);
		
		printf("time: 2\r\n");
		LED1=1;
		delay_ms(1000);
		
		printf("time: 1\r\n");
		LED1=0;
		delay_ms(1000);
		
		printf("进入系统待机模式\r\n");
		Enter_Standby_Mode();	
	}
}
相关推荐
三佛科技-187366133971 小时前
KP521405LGA低功耗5V1A易用高性能BUCK同步降压转换器芯片解析
单片机·嵌入式硬件
Joshua-a1 小时前
FPGA基于计数器的分频器时序违例的解决方法
嵌入式硬件·fpga开发·fpga
Dillon Dong1 小时前
STM32嵌入式:如何使用keil 来获取flash块数据并转换成可视化的数据 来判断源头数据是否错误
stm32·单片机·嵌入式硬件
雨疏风骤12403 小时前
ROM与RAM,储存地址、链接地址以及运行地址
linux·stm32·嵌入式·linux嵌入式
深耕AI3 小时前
【恍然大悟】8位单片机如何处理大数与二进制乘法?
单片机·嵌入式硬件
z20348315203 小时前
智能台灯控制面板
单片机·嵌入式硬件
钿驰科技3 小时前
TC-BL3650驱动板在无刷减速电机的应用
单片机·嵌入式硬件
深耕AI4 小时前
【单片机】解密STC89C52
单片机·嵌入式硬件
三佛科技-134163842124 小时前
FT32F072xx、FT32F072xB、FT32F072x6/x8基于ARM Cortex-M0内核32位单片机分析
arm开发·单片机·嵌入式硬件·智能家居·pcb工艺
清风6666664 小时前
基于单片机的火焰与温度联动检测及声光灭火控制系统
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业