添加 UI 变量管理并重构主应用程序结构
引入 vars.c 和 vars.h 用于管理与 UI 相关的全局变量。 新增 get_var_weigt_ui 和 set_var_weigt_ui 函数,用于访问和修改 UI 重量变量。 更新 CMakeLists.txt 以包含新的 UI 和 LVGL 依赖项。 将 main.c 转换为 main.cpp 以支持 C++ 特性,并重构了应用程序入口点。 实现了使用 FreeRTOS 定期更新 UI 的 UI 任务。 在 partitions.csv 中创建自定义分区表,用于管理闪存空间。 添加 update_sdkconfig.sh 脚本,自动更新 SDK 配置中的闪存大小和 SPIRAM 设置。 移除旧的 main.c 文件以精简项目结构。
This commit is contained in:
80
components/lvgl_st7789_use/include/lvgl_st7789_use.h
Normal file
80
components/lvgl_st7789_use/include/lvgl_st7789_use.h
Normal file
@@ -0,0 +1,80 @@
|
||||
|
||||
// SPDX-License-Identifier: MIT
|
||||
#pragma once
|
||||
|
||||
#include "esp_err.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* LCD pins */
|
||||
#ifndef EXAMPLE_LCD_GPIO_SCLK
|
||||
#define EXAMPLE_LCD_GPIO_SCLK CONFIG_LVGL_ST7789_GPIO_SCLK
|
||||
#endif
|
||||
#ifndef EXAMPLE_LCD_GPIO_MOSI
|
||||
#define EXAMPLE_LCD_GPIO_MOSI CONFIG_LVGL_ST7789_GPIO_MOSI
|
||||
#endif
|
||||
#ifndef EXAMPLE_LCD_GPIO_RST
|
||||
#define EXAMPLE_LCD_GPIO_RST CONFIG_LVGL_ST7789_GPIO_RST
|
||||
#endif
|
||||
#ifndef EXAMPLE_LCD_GPIO_DC
|
||||
#define EXAMPLE_LCD_GPIO_DC CONFIG_LVGL_ST7789_GPIO_DC
|
||||
#endif
|
||||
#ifndef EXAMPLE_LCD_GPIO_CS
|
||||
#define EXAMPLE_LCD_GPIO_CS CONFIG_LVGL_ST7789_GPIO_CS
|
||||
#endif
|
||||
#ifndef EXAMPLE_LCD_GPIO_BL
|
||||
#define EXAMPLE_LCD_GPIO_BL CONFIG_LVGL_ST7789_GPIO_BL
|
||||
#endif
|
||||
|
||||
|
||||
/* LCD size (ST7789 240x240) */
|
||||
// 可通过 menuconfig 配置
|
||||
#ifndef EXAMPLE_LCD_H_RES
|
||||
#define EXAMPLE_LCD_H_RES CONFIG_LVGL_ST7789_LCD_H_RES
|
||||
#endif
|
||||
#ifndef EXAMPLE_LCD_V_RES
|
||||
#define EXAMPLE_LCD_V_RES CONFIG_LVGL_ST7789_LCD_V_RES
|
||||
#endif
|
||||
|
||||
/* LCD SPI总线配置 */
|
||||
#define EXAMPLE_LCD_SPI_NUM (SPI2_HOST) // 使用SPI2主机接口进行通信
|
||||
|
||||
/* LCD显示参数配置 */
|
||||
#define EXAMPLE_LCD_PIXEL_CLK_HZ (20 * 1000 * 1000) // ST7789常用20MHz,兼顾稳定性与刷新速度
|
||||
|
||||
/* LCD命令和参数配置 */
|
||||
#define EXAMPLE_LCD_CMD_BITS (8) // 命令位数为8位,用于发送LCD控制命令
|
||||
#define EXAMPLE_LCD_PARAM_BITS (8) // 参数位数为8位,用于发送命令参数
|
||||
|
||||
/* LCD颜色和缓冲区配置 */
|
||||
#define EXAMPLE_LCD_BITS_PER_PIXEL (16) // 每个像素使用16位颜色(RGB565格式)
|
||||
#define EXAMPLE_LCD_DRAW_BUFF_DOUBLE (1) // 启用双缓冲模式,提高显示流畅度
|
||||
#define EXAMPLE_LCD_DRAW_BUFF_HEIGHT (50) // 绘图缓冲区高度为50行,影响刷新性能
|
||||
|
||||
/* ST7789颜色配置(出现偏色时优先调整这三项) */
|
||||
#define EXAMPLE_LCD_COLOR_ORDER_BGR (0) // 0: RGB, 1: BGR
|
||||
#define EXAMPLE_LCD_INVERT_COLOR (1) // 0: 正常色, 1: 反色
|
||||
#define EXAMPLE_LCD_SWAP_BYTES (1) // 0: 不交换RGB565高低字节, 1: 交换
|
||||
|
||||
/* LCD背光配置 */
|
||||
#define EXAMPLE_LCD_BL_ON_LEVEL (1) // 背光开启电平为高电平(1)
|
||||
|
||||
/* LCD方向/偏移配置 */
|
||||
#define EXAMPLE_LCD_GAP_X (0)
|
||||
#define EXAMPLE_LCD_GAP_Y (0)
|
||||
#define EXAMPLE_LCD_ROT_SWAP_XY (1)
|
||||
#define EXAMPLE_LCD_ROT_MIRROR_X (1)
|
||||
#define EXAMPLE_LCD_ROT_MIRROR_Y (0)
|
||||
|
||||
/* 调试项:上电后是否先显示三色测试图 */
|
||||
#define EXAMPLE_LCD_ENABLE_COLOR_TEST (0)
|
||||
|
||||
|
||||
esp_err_t start_lvgl_demo(void);
|
||||
esp_err_t lvgl_st7789_set_center_text(const char *text);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user