【MiniSTM32_HAL库版本_V1.0】按下K0进入待机,按下WH_UP或闹钟唤醒代码

本实验程序基于标准例程-HAL库版本ALIENTEK MINISTM32 实验11 TFT LCD液晶显示实验

引言:在正点原子提供的待机程序WKUP文件代码太复杂,对于只想实现待机功能的小白们,过于烧脑,所以在看了大量资料的前提下写出了简单的只需按下KEY0键实现待机,这个功能实现了,那么就可以写出很多关于待机的功能,例如开机3分钟进入待机等等。

实现的功能为:按下MiniSTM32开发板的KEY0进入待机模式

按下MiniSTM32的WK_UP唤醒。

注意:本实验需要在实验11 TFT LCD液晶显示实验文件里面移植KEY文件夹

本实验只需要更改main主函数的代码即可。

实验代码:

#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "lcd.h"
#include "key.h"


int main(void)
{ 
	u8 key=0;
    HAL_Init();                    	 	//初始化HAL库    
    Stm32_Clock_Init(RCC_PLL_MUL9);   	//设置时钟,72M
	delay_init(72);               		//初始化延时函数
	uart_init(115200);					//初始化串口
	LED_Init();							//初始化LED	
 	LCD_Init();
	KEY_Init();                          //初始化按键
	POINT_COLOR=RED;	  
	LCD_ShowString(30,40,200,24,24,"Mini STM32 ^_^");	
	LCD_ShowString(30,70,200,16,16,"TFTLCD TEST");
	LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK"); 					 
	LCD_ShowString(30,130,200,12,12,"2022/1/18");
	while(1){
		key=KEY_Scan(0);
		if(key==KEY0_PRES){
			//待机配置
			__HAL_RCC_APB2_FORCE_RESET();       //复位所有IO口 
			__HAL_RCC_PWR_CLK_ENABLE();         //使能PWR时钟
			  	
			__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);                  //清除Wake_UP标志
			HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN1);           //设置WKUP用于唤醒
//			HAL_PWR_EnableWakeUpPin(ENABLE);                    //设置闹钟用于唤醒 无闹钟可以注释掉
			HAL_PWR_EnterSTANDBYMode();                         //进入待机模式
		}
	}
	
}

对于实验11 TFT LCD液晶显示实验其他代码不变,这样就可以在TFT LCD模块下添加待机操作。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苏打不会碱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值