本文主要是介绍【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); //设置时钟,72Mdelay_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模块下添加待机操作。
这篇关于【MiniSTM32_HAL库版本_V1.0】按下K0进入待机,按下WH_UP或闹钟唤醒代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!