当前位置: 首页 > news >正文

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

编写代码测试
在这里插入图片描述

相关文章:

  • nginx代理websocket时ws遇到仅支持域名访问的处理
  • 整合性安全总结(ISS)早期规划
  • 通配符SSL证书:保护多个子域名的安全解决方案
  • 10.Excel:快速定位目标值
  • 第二节:文件系统
  • OpenCV VC编译版本
  • 《数据结构之美--二叉树》
  • 使用OpenCV和dlib库进行人脸关键点定位
  • TDR阻抗会爬坡? 别担心,不是你的错,你只是不够了解TDR!
  • opendds的配置
  • WebRtc08:WebRtc信令服务器实现
  • 牟乃夏《ArcGIS Engine 地理信息系统开发教程》学习笔记 4-空间分析与高级功能开发
  • 在单片机编程中充分使用抽象工厂模式,确保对象创建的限制,多使用抽象接口避免多变具体实现类
  • 算法笔记.染色法判断二分图
  • Python爬虫(9)Python数据存储实战:基于pymysql的MySQL数据库操作详解
  • Unity C#入门到实战: 启动你的第一个2D游戏项目(平台跳跃/俯视角射击) - 规划与核心玩法实现 (Day 40)
  • 【Java面试题03】Java并发编程经典面试题
  • 如何在idea中写spark程序
  • SQL Server 存储过程开发规范
  • 模电——PN结
  • 丁俊晖连续7年止步世锦赛16强,中国军团到了接棒的时候
  • 在循环往复的拍摄中,重新发现世界
  • 葛兰西的三位一体:重提并复兴欧洲共产主义的平民圣人
  • 一季度规模以上工业企业利润由降转增,国家统计局解读
  • 泽连斯基公布与特朗普会晤细节,强调实现全面、无条件停火
  • 保时捷中国研发中心落户上海虹桥商务区,计划下半年投入运营