【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、测试

编写代码测试

相关推荐
zd8451015005 小时前
RS485 总线详解
单片机·嵌入式硬件
✎ ﹏梦醒͜ღ҉繁华落℘9 小时前
编程基础 --高内聚,低耦合
c语言·单片机
科芯创展9 小时前
1A,1MHz,30VIN,XZ4115,降压恒流LED驱动芯片
单片机·嵌入式硬件
集芯微电科技有限公司9 小时前
四通道2A输出集成功率电感降压模块专为紧凑型方案设计
人工智能·单片机·嵌入式硬件·生成对抗网络·计算机外设
踏着七彩祥云的小丑10 小时前
嵌入式测试学习第 37 天:异常场景测试:断电、拔插、干扰、非法指令
单片机·嵌入式硬件·学习
意法半导体STM3210 小时前
【官方原创】如何为STM32CubeMX2配置Visual Studio Code配置方案
vscode·stm32·单片机·嵌入式硬件·策略模式·stm32cubemx·嵌入式开发
雾削木11 小时前
B语言经典教程现代化重构
java·前端·stm32·单片机·嵌入式硬件
Hello-FPGA12 小时前
Camera Link 与 CoaXPress 技术对比 如何选择你的相机接口
单片机·嵌入式硬件
项目題供诗12 小时前
STM32-USART串口协议(二十二)
stm32·单片机·嵌入式硬件
欢乐熊嵌入式编程12 小时前
选型避坑:ESP32 vs STM32+模组 vs NB-IoT,不同场景怎么选
stm32·单片机·嵌入式硬件·物联网·esp32·嵌入式iot