LVGL帧率控制

如何控制LVGL的帧率?

这实际上是个方向错误的问题。LVLG更新UI不是通过传统的按照帧去生成画面,而是通过确认是否有对象变'脏',和是否到刷新时间来确认是否来刷新屏幕的。他并不会强制刷新屏幕。

那么该怎么控制LVGL刷新速度呢?在LVGL内部有一个宏是控制显示的刷新周期的。

/*Default display refresh period. LVG will redraw changed areas with this period time*/
#define LV_DISP_DEF_REFR_PERIOD 20      /*[ms]*/

除了设置较短的刷新周期,还需要保证和显示芯片的通信总线带宽是否足够。当然,降低分辨率,色深,使用DMA这些都可以提高显示的帧率。

刷屏函数需要尽可能的使用非阻塞函数,最好使用DMA来实现。

想要实现30fps/60fps怎么办?

错误思路是"我要强制60fps"。正确应该为"保证LVGL有足够的调用频率,还有显示带宽"

posted @ 2025-12-22 15:37  大葱团  阅读(5)  评论(0)    收藏  举报