106 lines
2.5 KiB
Markdown
106 lines
2.5 KiB
Markdown
# 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`
|