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有足够的调用频率,还有显示带宽"

浙公网安备 33010602011771号