第12章 LVGL开发入门
12.1 LVGL开发简介
12.1.1 LVGL介绍
LVGL(Light and Versatile Graphics Library)是一个开源的嵌入式图形库,由Gábor Kiss-Vámosi于2016年创建,遵守MIT协议。目前由来自世界各地的志愿者共同维护和开发。
LVGL
LVGL具有轻量级、多功能、灵活和可移植等特点,可以帮助开发者快速和方便地创建美观和功能丰富的GUI。LVGL适用于各种嵌入式平台,并且支持多种操作系统,例如Linux、Windows、RTOS等,可运行于多种硬件板卡上。LVGL还支持多种不同分辨率的显示器、多种接口的触摸屏。LVGL还提供了多种语言的绑定,例如Python、Micropython、JavaScript等,并提供多种开发工具,例如interwetten与威廉的赔率体系 器、视觉化设计器、字体转换器等。
LVGL支持多种控件:圆弧、动画图像、进度条、按钮、按钮矩阵、日历、图表、画布、复选框、下拉列表、图象、图像按钮、键盘、标签、线条、菜单、消息框、滚轮、标尺、滑动条、跨度、旋转框、旋转器、开关、表、文本框、平铺视图、窗口等。使用LVGL可以制作风格多样的界面,比如:
12.1.2 LVGL内部机制
使用LVGL创建出各个图标并在屏幕上显示之后,以按钮图标为例,它如何及时地响应用户的点击操作?以温湿度图标为例,如何及时地更新它的数据?LVGL使用“timer”来实现。
操作图标时,要先点击触摸屏。我们会为触摸屏创建一个输入设备(“lv_indev_t”),并为它创建一个timer,通过这个timer周期性地读取鼠标的输入数据。以“packagesLVGL-v8.3.11 estssrclv_test_init.c”为例,注册鼠标设备时,内部注册了一个timer:
LVGL的主循环会周期性地调用上述的“lv_indev_read_timer_cb”函数,它里面将调用“lv_test_mouse_read_cb”得到鼠标数据,然后发送给被选中的图标。
假设有图标被用来显示温湿度值,我们也会为这个图标添加一个timer,通过这个timer周期性地读取温湿度值并更新图标。比如:
LVGL的主循环会周期性地调用上述的“label_speed_timer”函数,它里面将读取温湿度传感器的数值,并更新“label_speed”的文字。
这些定时器都是在LVGL的主循环里被调用的,主循环如何得到这些定时器?它们都被放入一个链表里:
怎么处理_lv_timer_ll链表里的各个timer?LVGL里有一个循环,代码如下:
12.2 开发第1个LVGL程序
本节课程演示如何编译、运行第1个LVGL程序。
12.2.1 下载源码
这些源码可以在网盘资料中看到,你可以不必自己下载:
RemiPi上运行的是Linux系统,支持的显示设备是基于Framebuffer的。所以,可以从LVGL官网下载“lv_port_linux_frame_buffer”:它是基于Linux的、支持Framebuffer的示例程序。
如下图所示下载v9.0版本:
在“lv_port_linux_frame_buffer”里,含有编译工具、LVGL 的源码链接(“如上图步骤4所示,就是LVGL源码链接”)。“lv_port_linux_frame_buffer”里,“lvgl”子目录是空的,我们需要下载LVGL v9.1的源码放到“lvgl”目录里(LVGL9.0有些问题)。点击上图步骤4的“lvgl”,如下图操作:
把“lv_port_linux_frame_buffer-release-v9.0.zip”、“lvgl-9.1.0.zip”分别解压后,得到“lv_port_linux_frame_buffer-release-v9.0”、“lvgl-9.1.0”,把后者目录下的所有文件复 制进“lv_port_linux_frame_buffer-release-v9.0/lvgl”目录下。
在Ubuntu下可以执行以下命令解压:
左右滑动查看完整内容
$ unzip lv_port_linux_frame_buffer-release-v9.0.zip $ unzip lvgl-9.1.0.zip $ mv lvgl-9.1.0/* lv_port_linux_frame_buffer-release-v9.0/lvgl/
-
嵌入式
+关注
关注
5086文章
19140浏览量
305899 -
开源
+关注
关注
3文章
3363浏览量
42548 -
图形库
+关注
关注
0文章
18浏览量
9031 -
LVGL
+关注
关注
1文章
85浏览量
2991
原文标题:LVGL开发入门 - RZ MPU工业控制教程连载(45)
文章出处:【微信号:瑞萨MCU小百科,微信公众号:瑞萨MCU小百科】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论