【ESP32】st7735s + LVGL移植
LVGL的移植
- 使用版本
- 1、创建工程
- 2、开始移植
- 2.1、文件准备
- 2.2、修改代码
- 2.3、SDK配置编辑器
- 3、测试
使用版本
- LVGL版本:8.3 链接点这里
- ESPIDF版本:4.4.8
- lvgl_esp32_drivers: 链接点这里
- ESP32型号:ESP32S3
1、创建工程
默认都会,略
2、开始移植
2.1、文件准备
将上面链接中的文件下载下来,如下:
解压后将两个文件夹分别放入工程的components文件夹下,没有components就创建一个。
2.2、修改代码
第一次加入lvgl源码需要点击彻底清理,再点击构建项目,这样等编译完才能在SDK配置编辑器中出现lvgl的配置项。
此时编译到最后会报错,此时需要在lvgl_esp32_drivers/lvgl_helpers.h文件中添加如下宏定义:
#define LV_HOR_RES_MAX 128 //配置屏幕尺寸
#define LV_VER_RES_MAX 160
#define SPI_HOST_MAX 2
不要着急,这时候编译还是会报错,在lvgl_esp32_drivers/lvgl_helpers.c文件中找到
//在文件最下方#if defined (CONFIG_IDF_TARGET_ESP32C3)dma_channel = SPI_DMA_CH_AUTO;#endifesp_err_t ret = spi_bus_initialize(host, &buscfg, (spi_dma_chan_t)dma_channel);assert(ret == ESP_OK);
改为:
#if defined (CONFIG_IDF_TARGET_ESP32C3) || (defined (CONFIG_IDF_TARGET_ESP32S3))dma_channel = SPI_DMA_CH_AUTO;#endifesp_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行
#define COLSTART 0//这两个都改为0
#define ROWSTART 0
点击构建编译程序,这时还会报错,是lv_mem_alloc大小的问题,调大就行了。
第一次加入LVGL一定要清楚构建,重新编译一次代码,这样SDK配置编辑器中才有对应的lvgl配置。
2.3、SDK配置编辑器
先说直接从git上来的lvgl_port_esp32
git clone --recurse-submodules https://gitee.com/JavonPeng/lvgl_port_esp32.git
这个在编辑器中,有屏幕尺寸设置,没有SPI设置
当前使用的版本,没有屏幕尺寸设置
配置完保存一下。
现在编译就不会报错了
3、测试
编写代码测试