完成初代的雏形设计

This commit is contained in:
Wang Beihong
2026-03-11 20:14:14 +08:00
commit 2f56316c18
63 changed files with 10594 additions and 0 deletions

View File

@@ -0,0 +1,105 @@
# lvgl_st7735s_use 组件说明
`lvgl_st7735s_use` 是项目中的 LCD 显示组件,基于 `esp_lcd + esp_lvgl_port`,用于快速驱动 ST77xx 系列 SPI 屏并显示 LVGL 界面。
---
## 功能概览
- 初始化 SPI LCD含背光、面板、显示偏移
- 初始化 LVGL 端口并注册显示设备
- 默认创建一个居中标签用于快速验证显示链路
- 提供运行时更新中心文本接口
- 支持可配置方向、镜像与偏移
- 支持可选三色测试图(调试用)
---
## 对外 API
头文件:`include/lvgl_st7735s_use.h`
- `esp_err_t start_lvgl_demo(void);`
- 完成 LCD + LVGL 初始化并创建默认界面
- `esp_err_t lvgl_st7735s_set_center_text(const char *text);`
- 运行时更新中心标签文字(线程安全,内部已加锁)
---
## 关键配置项(可直接改宏)
`include/lvgl_st7735s_use.h` 中:
### 1) 屏幕与 SPI
- `EXAMPLE_LCD_H_RES` / `EXAMPLE_LCD_V_RES`
- `EXAMPLE_LCD_PIXEL_CLK_HZ`
- `EXAMPLE_LCD_SPI_NUM`
- `EXAMPLE_LCD_CMD_BITS` / `EXAMPLE_LCD_PARAM_BITS`
建议:首次点亮优先用较低时钟(如 `10MHz`),稳定后再升频。
### 2) 方向与偏移(重点)
- `EXAMPLE_LCD_GAP_X`
- `EXAMPLE_LCD_GAP_Y`
- `EXAMPLE_LCD_ROT_SWAP_XY`
- `EXAMPLE_LCD_ROT_MIRROR_X`
- `EXAMPLE_LCD_ROT_MIRROR_Y`
说明:
- 当前项目已验证一组可用参数(顺时针 90° + 26 偏移)。
- 若出现“文字偏移/边缘花屏/方向反了”,优先微调上述宏,不要同时在多层重复旋转。
### 3) 调试项
- `EXAMPLE_LCD_ENABLE_COLOR_TEST`
- `1`:上电先画 RGB 三色测试图(便于确认硬件链路)
- `0`:跳过测试,直接进入 LVGL
---
## 在主程序中调用
```c
#include "esp_check.h"
#include "lvgl_st7735s_use.h"
void app_main(void)
{
ESP_ERROR_CHECK(start_lvgl_demo());
ESP_ERROR_CHECK(lvgl_st7735s_set_center_text("BotanicalBuddy"));
}
```
---
## 常见问题
### 1) 背光亮但没有内容
优先排查:
- 面板型号与驱动是否匹配ST7735S / ST7789
- SPI 模式、时钟是否过高
- 方向/偏移参数是否正确
### 2) 文字方向反了或显示偏移
优先调整:
- `EXAMPLE_LCD_ROT_*`
- `EXAMPLE_LCD_GAP_X / EXAMPLE_LCD_GAP_Y`
### 3) 想快速确认硬件链路是否通
`EXAMPLE_LCD_ENABLE_COLOR_TEST` 设为 `1`,观察是否能显示三色图。
---
## 依赖
由组件 `CMakeLists.txt` 声明:
- `driver`
- `esp_lcd`
- `esp_lvgl_port`