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();	
	}
}
相关推荐
于小猿Sup44 分钟前
VMware在Ubuntu22.04驱动Livox Mid360s
linux·c++·嵌入式硬件·自动驾驶
chao1898442 小时前
STM32 HAL库驱动AT24C02 EEPROM例程
stm32·单片机·嵌入式硬件
不会武功的火柴4 小时前
SystemVerilog语法(8)-有限状态机(FSM)
嵌入式硬件·fpga开发·自动化·ic验证·rtl·uvm方法学
猫猫的小茶馆5 小时前
【Python】函数与模块化编程
linux·开发语言·arm开发·驱动开发·python·stm32
feifeigo1235 小时前
STM32矩阵键盘驱动(库函数版)实现
stm32·矩阵·计算机外设
嵌入式小站6 小时前
STM32 零基础可移植教程 05:按键消抖,为什么按一次会触发好几次
chrome·stm32·嵌入式硬件
czhaii6 小时前
跟我动手学FX系列PLC GX2环境
嵌入式硬件
拾知_H7 小时前
STM32/Delay延时函数编程思路
stm32·单片机·时钟·延时
2zcode8 小时前
基于STM32的智能扫地机器人设计与实现
stm32·嵌入式硬件·机器人
jllllyuz9 小时前
单相并网逆变器控制代码实现(STM32版)
stm32·单片机·嵌入式硬件