LVGL 笔记

1.移植LVGL。

总体来说比较简单,

LVGL 笔记_第1张图片

配置好分辨率,配置好动态内存 内存池大小。

LVGL 笔记_第2张图片

在l中配置双缓冲。

要实现双缓冲,还得开启中断,修改一下驱动。

LVGL 笔记_第3张图片

实际就是一个刷新指定区域的函数,但是如果使用的了 DMA,我们就要修改,不用在这里死等,我们需要使用中断,在中断中调用

lv_disp_flush_ready 来清空标志位,这里面的标志位表示上一帧的数剧已经发送完成了。

所以我们看到这里需要的内存可大可笑,所以大一点的内存就可以更流畅运行。省去很多不必要的计算开销。

2.大概运行机制

lv_task_handler 这里面有一些定时器的刷新的任务。

这个定时我不是很喜欢。我感觉这个GUI的框架设计问题就出来这里,过度的固定了一些操作思路,gui就应该提供一些接口就可以了,没有必要去实现一些定时任务,

这个交给用户做就可以。很多单片机计算能力有限,这里的定时刷新,如果我们不用RTOS,这个东西在裸机上用起来就很麻烦。

LVGL 笔记_第4张图片

1.先申请一个屏幕,类型一个窗体,然后在窗体中申请各个组件。

组件之间的层次,最先申请的图层在最下面。源码没有深入研究,猜测应是多个链表,按照链表扫描。

 

lv_img_set_angle 这玩意儿是控件的角度,它的精确度是0.1度

LVGL 笔记_第5张图片

开始不知道差点以为是1度。

lv_img_set_pivot 这个是设置空间旋转的中心点。

 

 

 

 

 

 

你可能感兴趣的:(LVGL)