【ESP32】st7735s + LVGL移植

LVGL的移植

使用版本

1、创建工程

默认都会,略

2、开始移植

2.1、文件准备

将上面链接中的文件下载下来,如下:

解压后将两个文件夹分别放入工程的components文件夹下,没有components就创建一个。

2.2、修改代码

第一次加入lvgl源码需要点击彻底清理,再点击构建项目,这样等编译完才能在SDK配置编辑器中出现lvgl的配置项。

此时编译到最后会报错,此时需要在lvgl_esp32_drivers/lvgl_helpers.h文件中添加如下宏定义:

c 复制代码
#define LV_HOR_RES_MAX 128  //配置屏幕尺寸
#define LV_VER_RES_MAX 160
#define SPI_HOST_MAX 2

不要着急,这时候编译还是会报错,在lvgl_esp32_drivers/lvgl_helpers.c文件中找到

c 复制代码
//在文件最下方
   #if defined (CONFIG_IDF_TARGET_ESP32C3)
    dma_channel = SPI_DMA_CH_AUTO;
    #endif
    esp_err_t ret = spi_bus_initialize(host, &buscfg, (spi_dma_chan_t)dma_channel);
    assert(ret == ESP_OK);

改为:

c 复制代码
   #if defined (CONFIG_IDF_TARGET_ESP32C3) || (defined (CONFIG_IDF_TARGET_ESP32S3))
    dma_channel = SPI_DMA_CH_AUTO;
    #endif
    esp_err_t ret = spi_bus_initialize(host, &buscfg, (spi_dma_chan_t)dma_channel);
    assert(ret == ESP_OK);

因为我们这里使用的是S3的芯片。

components/lvgl_esp32_drivers/lvgl_tft/st7735s.h,大概40行

c 复制代码
#define COLSTART            0//这两个都改为0
#define ROWSTART            0

点击构建编译程序,这时还会报错,是lv_mem_alloc大小的问题,调大就行了。

第一次加入LVGL一定要清楚构建,重新编译一次代码,这样SDK配置编辑器中才有对应的lvgl配置。

2.3、SDK配置编辑器

先说直接从git上来的lvgl_port_esp32

git 复制代码
git clone --recurse-submodules https://gitee.com/JavonPeng/lvgl_port_esp32.git

这个在编辑器中,有屏幕尺寸设置,没有SPI设置

当前使用的版本,没有屏幕尺寸设置



配置完保存一下。

现在编译就不会报错了

3、测试

编写代码测试

相关推荐
Ronin-Lotus3 小时前
嵌入式硬件篇---有线串口通信问题解决
单片机·嵌入式硬件·ttl·rs232·rs485·有线串口
GalaxySinCos5 小时前
08 51单片机之串口通信
单片机·嵌入式硬件·51单片机
悠哉悠哉愿意5 小时前
【电赛学习笔记】MaxiCAM 项目实践——与单片机的串口通信
笔记·python·单片机·嵌入式硬件·学习·视觉检测
李某学编程7 小时前
Cortex-M内核SysTick定时器介绍
stm32·单片机
李永奉7 小时前
STM32-定时器的基本定时/计数功能实现配置教程(寄存器版)
c语言·开发语言·stm32·单片机·嵌入式硬件
糖糖单片机设计8 小时前
硬件开发_基于STM32单片机的电脑底座系统
stm32·单片机·嵌入式硬件·物联网·51单片机
IT项目分享11 小时前
ESP32入门实战:PC远程控制LED灯完整指南
单片机·嵌入式硬件·micropython·it项目网
Electrical_IT13 小时前
STM32-PWM输入捕获的配置
stm32·单片机
风吹花中花吹风15 小时前
原创-锐能微82xx系列电能计量芯片软件驱动开发与精度校准流程完全指南
驱动开发·单片机·嵌入式硬件·锐能微·计量芯片·精度校准·电能表校准
嵌入式小白牙17 小时前
ARM-DMA
arm开发·stm32·单片机