| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> 嵌入式 -> 【ESP32学习笔记】#功能篇#(3)LVGL移植与使用 -> 正文阅读 |
|
|
[嵌入式]【ESP32学习笔记】#功能篇#(3)LVGL移植与使用 |
一、简介
二、配置使用1、获取示例
|
| 库 | 描述 |
|---|---|
| lvgl | LVGL库主体 |
| lv_demos | LVGL 库的示例、教程和应用程序 |
| lvgl_esp32_drivers | 与 LVGL 一起使用的 ESP32 驱动程序。lvgl_tft:屏幕驱动适配lvgl_touch:触摸驱动适配 |
注意:
目前master分支:
ESP-IDF 版本要求4.2LVGL 版本:7.9lv_examples 版本:7.9make menuconfig:
Component config --->
lv_examples configuration ---> # 演示示例选择
LVGL configuration ---> # 关于LVGL库的配置,包括色彩,屏幕大小选择等。是 `lv_conf.h` 文件的相关配置
LVGL TFT Display controller ---> # 关于屏幕显示的配置,包括引脚,显示方向,控制芯片选择等
LVGL Touch controller ---> # 关于屏幕触摸的配置,包括引脚,控制芯片选择等
Component config → lv_examples configuration:
[ ] Enable printf-ing data in demos and examples. # 在演示和示例中启用打印数据
Select the demo you want to run. (Show demo widgets.) ---> # 选择要运行的示例
(X) Show demo widgets. # 显示演示小部件
( ) Demonstrate the usage of encoder and keyboard. # 演示编码器和键盘的使用
( ) Benchmark your system. # 对系统进行基准测试
( ) Stress test for LVGL. # LVGL压力测试
[*] Slide demo widgets automatically. # 自动滑动演示小部件
Component config → LVGL configuration:
[ ] Set IRAM as LV_ATTRIBUTE_FAST_MEM # 将IRAM设置为 LV_ATTRIBUTE_FAST_MEM 属性
[ ] LVGL minimal configuration.
(160) Maximal horizontal resolution to support by the library. # 库支持的最大水平分辨率
(128) Maximal vertical resolution to support by the library. # 库支持的最大垂直分辨率
Color depth. (16: RGB565) ---> # 色彩深度
[*] Swap the 2 bytes of RGB565 color. Useful if the display has a 8 bit interface (e.g. SPI).# 交换RGB565颜色的2个字节。如果显示器具有8位接口(例如SPI),则此功能非常有用
[*] Enable anti-aliasing (lines, and radiuses will be smoothed).# 启用抗锯齿(直线和半径将平滑)
(30) Default display refresh period (ms). # 默认显示刷新周期
(130) DPI (Dots per inch in px). # DPI(每英寸像素点数)
(30) Small display limit # 最小显示限制
(50) Medium display limit # 中等显示限制
(70) Large display limit # 最大显示限制
Memory manager settings ---> # 内存管理器设置
Indev device settings ---> # Indev设备设置
Feature usage ---> # 功能使用
Image decoder and cache ---> # 图像解码器和缓存
Compiler Settings ---> # 编译器设置
HAL Settings ---> # HAL设置
Log Settings ---> # Log设置
Debug Settings ---> # Debuf设置
Font usage ---> # 字体使用(自带字体)
Theme usage ---> # 主题使用
Text Settings ---> # 文本设置(编码等)
Widgets ---> # 小部件
Component config → LVGL TFT Display controller:
Select predefined display configuration (None) ---> # 选择预定义的开发板配置
Display orientation (Landscape) ---> # 显示方向(竖向/竖向倒置/横向/横向倒置)
Select predefined board pinouts (None) ---> # 选择预定义的开发板引脚
Select a display controller model. (ST7735S) ---> # 选择显示芯片型号
[ ] Use custom display buffer size (bytes) # 使用自定义显示缓冲区大小
TFT SPI Bus. (HSPI) ---> # TFT SPI总线模式
TFT Data Transfer Mode (SIO (MOSI/MISO)) ---> # TFT数据传输模式(几线制的SPI)
TFT SPI Duplex Mode (HALF DUPLEX) ---> # TFT SPI双工模式(半双工/全双工)
[ ] Use custom SPI clock frequency. # 使用自定义SPI时钟频率
[ ] Invert colors in display # 反转颜色
[ ] Handle Backlight and TFT power for M5StickC using AXP192. (NEW) # 使用 AXP192 处理 M5StickC 的背光和TFT电源
Display Pin Assignments ---> # 引脚配置(如果选择了开发板就不用配置了)
Component config → LVGL TFT Display controller → Display Pin Assignments:
(13) GPIO for MOSI (Master Out Slave In)
[ ] GPIO for MISO (Master In Slave Out)
(14) GPIO for CLK (SCK / Serial Clock)
[*] Use CS signal to control the display
(15) GPIO for CS (Slave Select)
[*] Use DC signal to control the display
(2) GPIO for DC (Data / Command)
(4) GPIO for Reset
[*] Enable control of the display backlight by using an GPIO. # 使用GPIO启用显示器背光控制
[*] Is backlight turn on with a HIGH (1) logic level? # 背光是否高电平有效
(27) GPIO for Backlight Control (NEW)
Component config → LVGL Touch controller:
Select a touch panel controller model. (None) ---> # 触摸驱动芯片选择
(X) None
( ) XPT2046
( ) FT6X06
( ) STMPE610
( ) ADCRAW
( ) FT81X
( ) RA8875
Select a touch panel controller model. (XPT2046) --->
Touch Controller SPI Bus. (VSPI) --->
Touchpanel (XPT2046) Pin Assignments --->
Touchpanel Configuration (XPT2046) --->
Component config → LVGL Touch controller → Touchpanel Configuration (XPT2046):
(200) Minimum X coordinate value. # 最小X坐标值
(120) Minimum Y coordinate value. # 最小Y坐标值
(1900) Maximum X coordinate value. # 最大X坐标值
(1900) Maximum Y coordinate value. # 最大Y坐标值
[*] Swap XY. # 交换XY
[*] Invert X coordinate value. # 反转X坐标值
[*] Invert Y coordinate value. # 反转Y坐标值
Select touch detection method. (IRQ pin only) ---> # 选择触摸检测方法(仅中断/中断和按压/仅按压)
Component config → LVGL Touch controller → Touchpanel Configuration (XPT2046) → Select touch detection method.:
(19) GPIO for MISO (Master In Slave Out) (NEW)
(23) GPIO for MOSI (Master Out Slave In) (NEW)
(18) GPIO for CLK (SCK / Serial Clock) (NEW)
(5) GPIO for CS (Slave Select) (NEW)
(25) GPIO for IRQ (Interrupt Request) (NEW)
如果显示异常,修改显示方向 Display orientation 和 水平分辨率、垂直分辨率。
报错修改:
选择 ST7735S 驱动后报错:
/home/pjw/Item/esp32_maix/reference/lvgl_port_esp32/components/lvgl_esp32_drivers/lvgl_tft/st7735s.h:31:22: error: 'CONFIG_LV_AXP192_PIN_SDA' undeclared (first use in this function); did you mean 'CONFIG_LV_DISP_PIN_SDA'?
#define AXP192_SDA CONFIG_LV_AXP192_PIN_SDA
这是因为我没有启用 AXP192 的配置,而代码里面又没有处理导致的。
解决:
st7735s.h:
增加是否定义了 CONFIG_LV_M5STICKC_HANDLE_AXP192 的判断:
#ifdef CONFIG_LV_M5STICKC_HANDLE_AXP192
#define AXP192_SDA CONFIG_LV_AXP192_PIN_SDA
#define AXP192_SCL CONFIG_LV_AXP192_PIN_SCL
#endif
st7735s.c:
i2c 和 axp192 相关的函数全部增加 CONFIG_LV_M5STICKC_HANDLE_AXP192 是否定义的判断
示例修改:
create_demo_application函数默认 st7735s 只显示 hello world 。修改:
// #if defined CONFIG_LV_TFT_DISPLAY_MONOCHROME || defined CONFIG_LV_TFT_DISPLAY_CONTROLLER_ST7735S
#if defined CONFIG_LV_TFT_DISPLAY_MONOCHROME
![]() 屏幕外观 | ![]() 屏幕接口 |

每英寸像素点数(DPI)= 像素个数/英寸
1英寸(inch)=2.54厘米(cm)=25.4毫米(mm)



|
|
| 嵌入式 最新文章 |
| 基于高精度单片机开发红外测温仪方案 |
| 89C51单片机与DAC0832 |
| 基于51单片机宠物自动投料喂食器控制系统仿 |
| 《痞子衡嵌入式半月刊》 第 68 期 |
| 多思计组实验实验七 简单模型机实验 |
| CSC7720 |
| 启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
| STM32初探 |
| STM32 总结 |
| 【STM32】CubeMX例程四---定时器中断(附工 |
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年11日历 | -2025/11/22 21:12:17- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |