feat: 添加启动按钮功能与 UI 事件处理
- 在 CMakeLists.txt 中添加 boot_button.c 源文件以支持启动按钮功能 - 新增 ui_handlers.c 和 ui_handlers.h,处理 UI 事件并初始化启动按钮 - 实现 boot_button.c,配置 GPIO 中断和任务以响应启动按钮按下事件 - 更新 board_config.h,定义启动按钮的 GPIO 引脚
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
#include "lvgl_port.h"
|
||||
#include "touch.h"
|
||||
#include "ui.h"
|
||||
#include "ui_handlers.h"
|
||||
#include "wifi_manager.h"
|
||||
|
||||
static const char *TAG = "app";
|
||||
@@ -35,6 +36,8 @@ void app_main(void)
|
||||
ui_init();
|
||||
lvgl_port_unlock();
|
||||
|
||||
ui_handlers_init();
|
||||
|
||||
ESP_LOGI(TAG, "Starting WiFi");
|
||||
wifi_manager_init();
|
||||
}
|
||||
|
||||
@@ -1,6 +1,31 @@
|
||||
#include "ui_handlers.h"
|
||||
|
||||
#include <stdbool.h>
|
||||
|
||||
#include "boot_button.h"
|
||||
#include "lvgl_port.h"
|
||||
#include "ui.h"
|
||||
#include "ui_events.h"
|
||||
|
||||
static bool s_showing_screen1;
|
||||
|
||||
static void ui_toggle_screen(void)
|
||||
{
|
||||
lvgl_port_lock();
|
||||
if (s_showing_screen1) {
|
||||
_ui_screen_change(&ui_Screen2, LV_SCR_LOAD_ANIM_FADE_ON, 200, 0, ui_Screen2_screen_init);
|
||||
} else {
|
||||
_ui_screen_change(&ui_Screen1, LV_SCR_LOAD_ANIM_FADE_ON, 200, 0, ui_Screen1_screen_init);
|
||||
}
|
||||
s_showing_screen1 = !s_showing_screen1;
|
||||
lvgl_port_unlock();
|
||||
}
|
||||
|
||||
void ui_handlers_init(void)
|
||||
{
|
||||
boot_button_init(ui_toggle_screen);
|
||||
}
|
||||
|
||||
void update_year_action(lv_event_t * e)
|
||||
{
|
||||
(void)e;
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
#pragma once
|
||||
|
||||
/* UI event callbacks declared in ui_events.h are implemented in ui_handlers.c */
|
||||
void ui_handlers_init(void);
|
||||
|
||||
Reference in New Issue
Block a user