解决ESP32 LVGL无法显示图片,显示No data的问题

编程入门 行业动态 更新时间:2024-10-17 13:31:29

解决ESP32 LVGL无法显示<a href=https://www.elefans.com/category/jswz/34/1770705.html style=图片,显示No data的问题"/>

解决ESP32 LVGL无法显示图片,显示No data的问题

这两天在ESP32 IDF上移植了LVGL8.2,LVGL8.2已经内置了decoder,不需要再安装额外的库。但是,

    lv_obj_t * wp;wp = lv_img_create(DictSense);lv_img_set_src(wp, "S:/ALBUM/wink.png");

将文件系统移植好后,把decoder打开:


先说解决方案:

解决方案

将 lv_conf.h中的

#  define LV_MEM_SIZE    (32U * 1024U)

把32改大(要确保你单片机的内存是否够)
如果使用了lvgl_esp32_drivers,则在menuconfig中:(默认32,单位KB


寻找过程

先给不太懂LVGL的新手科普一点,lv_conf.h是lvgl的配置文件,然而假如你使用了官方的,lvgl_esp32_drivers库,那么是不用管这个文件的,即使你把这个文件启用(设为1),还是没有用, lvgl_esp32_drivers已经将所有的设置项都搬到了menu config里面,只用在那里面设置就行了。(不过每改一次设置都要从头编译,真的很痛苦)

我先是以为是自己图片文件的问题,我去把官方的测试图片放进去依旧不行,但是电脑模拟器是可以的
然后我以为是文件系统的问题,换了文件系统还是不行

然后debug的话,首先要把LVGL的log打开

这里是不同的log等级,假如你开的最低级,他每一个事件都会报告,直接把esp32 CPU占满而基本无法运行 ,我选的是第2个等级,终于log出来了一点信息(只有打开错误这一句话)

但是没有关键信息,只是说错误代码是 LV_RES_INV

于是我又在绘图decode函数里面看了好长时间,不知道点到了什么,终于把关键信息给log出来了
动态分配内存的大小不够了啊!(调出这个log,用了一天的时间,我也不知道为什么开始没有log出内存不够这个信息)
原来如此!!!

关于文件系统

关于文件系统:其实esp32 IDF的文件系统是不用移植的,官方就兼容STDIO。直接把官方的SD卡例程的初始化复制进去 然后把LVGL的文件系统选择STDIO,配置一下即可。但是速度会比FATFS慢太多太多,还是建议使用lv_fs_if库。同样一个项目用if简直是秒出,用STDIO要等3秒。
文件系统移植教程:

更多推荐

解决ESP32 LVGL无法显示图片,显示No data的问题

本文发布于:2024-03-07 10:10:47,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1717538.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:图片   LVGL   data

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!