1 lv_refr的作用
在 lv_conf 中可以看到如下宏定义,表示定义屏幕刷新周期的时间,单位为毫秒
2 效果
与 lv_indev 相似,数值越大视觉感受越差
- 当
#define LV_REFR_PERIOD 1
的时候,在屏幕上滑动列表,感觉滑动的效果会比较流畅。 - 当
#define LV_REFR_PERIOD 40
的时候,在屏幕上滑动列表,感觉滑动的效果有明显的卡顿感,如果数值大于LV_INDEV_READ_PERIOD
的数值,这会有非常明显的卡顿感。
3 实现过程
可以看到 lv_refr 的初始化函数与 lv_indev 的初始化函数很像,也是创建一个任务,通过周期性的调用任务内的函数来实现屏幕的显示刷新
任务中调用的函数如下,首先是获取定时器的消息,并且将刷新缓冲区的内存清零
下面是将待刷新的区域加入到缓冲区
下面是刷新缓冲区:
如果定义了虚拟缓冲区,则会调用下面的函数