lvgl常见问题

[English]

本节主要描述LVGL绘制UI功能常遇到的问题和解决方法。

Q:屏幕能显示UI但是颜色不正常

A:检查下工程中是否打开宏CONFIG_LV_COLOR_16_SWAP,该宏通常是用于解决QSPI/SPI LCD颜色异常的问题。


Q:工程上电执行立马出现死机问题

A:可先用add2line命令定位死机的位置,若死机在lvgl源码内部通常是申请不到内存或者内存被踩导致,具体可将log dump全进行现场还原分析。此外,lvgl的线程是不安全的,若在其他task中绘制UI,需要使用 lv_vendor_disp_lock()lv_vendor_disp_unlock() 的接口进行代码保护。


Q:工程上电后log正常但是屏幕黑屏无显示

A:检查代码中使用的LCD类型和分辨率是否和实际LCD型号一致,且查看config文件中是否将选用的LCD宏打开,若log中lvgl的数值不为0则表示lvgl工作正常,需要重点排除LCD的问题。


Q:使用JPEG硬件解码提前解码到psram然后使用LVGL显示该图片显示异常。

A:硬件解码模块使用有限制,JEPG图像必须是YUV422图片,且图像的行数必须是32的倍数,列数必须是8的倍数。


Q:如何提高LVGL的帧率?

A:draw_buffer使用sram内存并使用双draw_buffer,同时打开 CONFIG_CACHE_ENABLE 以及 CONFIG_LV_ATTRIBUTE_FAST_MEM