ESP32 LVGL8.1 M5Stack + LVGL + IDF 详细的移植教程 (27)

提示:本博客作为学习笔记,有错误的地方希望指正

一、ESP32 LVGL移植(可以更新到最新的版本)移植准备

  移植下载网址:Github,然后需要下载一些文件,其中找到属于lv_port_esp32lvgl ,lv_demos,lvgl_esp32_drivers四个文件。将LVGL、lvgl_demos、lv_esp32_drivers中的文件复制到components文件中子目录中。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、移植修改文件

  编译,然后出现报错就是lvgl中的历程设置中components\lv_examples 中的文件lv_ex_conf.h 不匹配历程中控制的头文件,需要修改这里的为lv_demo_conf.h,并且切换里面的内容,这里我是直接使用VS仿真工程中的控制文件的。
  在编译然后出现音乐Demo中的文件出现无法找到字体,然后这里就直接可以在sdkconfig中勾选字体。
在这里插入图片描述

  解决编译字体问题,配置sdkconfig,选中其中的齿轮
在这里插入图片描述

  打开之后就找到lvgl中的字体,勾选其中12、16号字体
在这里插入图片描述

  编译之后还有错误,并且在main.c文件中出现头文件下有波浪线,并且无法跳转,这个时候我们就可以通过底部菜单栏中 点击Win32,然后在点击编辑配置UI,然后点击c_cpp_properties.json,实现UI的配置,这个时候就会对Vscode的编译环境进行一些配置,但是还是无法跳转,这个时候就要给已经变异通过的工程文件夹中的内容复制到这里面,然后再次编译就可以解决这个问题。
在这里插入图片描述
在这里插入图片描述

  配置好json环境之后再次编译还有几个地方有错误,先解决驱动里面的错误,出现我们内存大小没有定义,我们在该点.h文件中#define LV_HOR_RES_MAX 240 具体240的大小还要根据液晶屏幕的像素设置。
在这里插入图片描述

然后解决lvgl_helpers.c中的错误,从.c文件中可以看出这里assert((0 <= host) && (SPI_HOST_MAX > host));报错,这里可以直接注释掉或者宏定义 #define SPI_HOST_MAX 3 ,这里只是一个断言作为调试库的时候使用的。应为ESP32有3个SPI,宏定义最大3
  最后解决主函数中的错误,又是几个未定义的函数,我们看了下lvgl/src/hal文件下lv_hal_disp.c 没有次函数,然后我们就给此函数替换为lv_disp_draw_buf_init,这个是lv_port_esp32这个文档还应该之前使用的不是LVGL8的版本的hal固件API,需要替换下就可以了。此外还有static lv_disp_buf_t disp_buf; 中的lv_disp_buf_t未知类型命名,这个也是API不兼容,这里修改为lv_disp_draw_buf_t就可以了。最后还有一个就是 disp_drv.buffer显示错误,这个也是之前API不兼容,这里换为disp_drv.draw_buf即可,编译既可以编译通过了。
  配置液晶显示像素。
在这里插入图片描述

disp_drv.hor_res = 320;                /*Set the horizontal resolution in pixels*/
disp_drv.ver_res = 240;                /*Set the vertical resolution in pixels*/

  配置esp32 sdkconfig配置液晶控制引脚。
在这里插入图片描述

  通过sdkconfig配置芯片内存以及主频,我这里M5Stock配置8M 240Mhz主频。
修改ILI9341的配置符合M5Stack。
在这里插入图片描述

  最后我们下载测试下看看是否正常,测试程序可以在main.c文件中有,需要修改下,这个文件中是lvgl7的版本,因此需要修改下符合lvgl8的版本。
在这里插入图片描述

  最后下载显示但是颜色显示不对,这个时候我们需要修改下sdkconfig中的配置即可。
在这里插入图片描述

三、移植后的最终显示

请添加图片描述

四、下载链接

  M5Stock + LVGL + IDF

  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值