0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

LVGL开发入门教程

瑞萨MCU小百科 来源:瑞萨MCU小百科 2025-01-03 15:23 次阅读

第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:

acb63e48-c988-11ef-9310-92fbcf53809c.png

LVGL的主循环会周期性地调用上述的“lv_indev_read_timer_cb”函数,它里面将调用“lv_test_mouse_read_cb”得到鼠标数据,然后发送给被选中的图标。

假设有图标被用来显示温湿度值,我们也会为这个图标添加一个timer,通过这个timer周期性地读取温湿度值并更新图标。比如:

acd28cd8-c988-11ef-9310-92fbcf53809c.png

LVGL的主循环会周期性地调用上述的“label_speed_timer”函数,它里面将读取温湿度传感器的数值,并更新“label_speed”的文字。

这些定时器都是在LVGL的主循环里被调用的,主循环如何得到这些定时器?它们都被放入一个链表里:

acf1e326-c988-11ef-9310-92fbcf53809c.png

怎么处理_lv_timer_ll链表里的各个timer?LVGL里有一个循环,代码如下:

ad0766b0-c988-11ef-9310-92fbcf53809c.png

12.2 开发第1个LVGL程序

本节课程演示如何编译、运行第1个LVGL程序。

12.2.1 下载源码

这些源码可以在网盘资料中看到,你可以不必自己下载:

ad153e52-c988-11ef-9310-92fbcf53809c.png

RemiPi上运行的是Linux系统,支持的显示设备是基于Framebuffer的。所以,可以从LVGL官网下载“lv_port_linux_frame_buffer”:它是基于Linux的、支持Framebuffer的示例程序。

如下图所示下载v9.0版本:

ad482eca-c988-11ef-9310-92fbcf53809c.png

在“lv_port_linux_frame_buffer”里,含有编译工具、LVGL 的源码链接(“如上图步骤4所示,就是LVGL源码链接”)。“lv_port_linux_frame_buffer”里,“lvgl”子目录是空的,我们需要下载LVGL v9.1的源码放到“lvgl”目录里(LVGL9.0有些问题)。点击上图步骤4的“lvgl”,如下图操作:

ad65b45e-c988-11ef-9310-92fbcf53809c.png

把“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小百科】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    FPGA入门教程

    FPGA入门教程 FPGA 入门教程 1 .数字电路设计入门 2 .FPGA 简介 3 .FPGA 开发流程 4 .RTL设计 5 .QuartusⅡ设计实例 6.ModelS
    发表于 08-11 11:40

    ALIENTEK MiniSTM32开发入门教程20101122

    ALIENTEK MiniSTM32开发入门教程20101122ALIENTEK MiniSTM32开发入门教程20101122.pdf
    发表于 07-04 05:23

    ALIENTEK MiniSTM32开发入门教程20101122

    ALIENTEK MiniSTM32开发入门教程20101122ALIENTEK MiniSTM32开发入门教程20101122.pdf
    发表于 07-09 01:08

    LittleVGL (LVGL)入门知识

    LittleVGL (LVGL)干货入门教程四之制作和使用中文汉字字库前言:阅读前,请确保你至少拥有以下条件:已实现显示API(教程一已实现, 链接:LittleVGL (LVGL)入门教程
    发表于 07-15 10:06

    LVGL的文件系统(fs)API对接

    LittleVGL (LVGL)干货入门教程三之LVGL的文件系统(fs)API对接。前言:阅读前,请确保你拥有以下条件:你的项目已经完成“FatFS”的移植(例如你可以用FatFS进行SD卡的文件
    发表于 08-09 08:38

    LVGL的输入设备API对接

    LittleVGL (LVGL)干货入门教程二之LVGL的输入设备(indev)API对接前言:阅读前,请确保你拥有以下条件:你已经完成“显示API”的移植。你已经实现了一个屏幕的触摸驱动 (如果你
    发表于 01-18 10:12

    FPGA/SOPC开发快速入门教程

    FPGA/SOPC开发快速入门教程
    发表于 08-06 16:56 79次下载
    FPGA/SOPC<b class='flag-5'>开发</b>快速<b class='flag-5'>入门教程</b>

    FPGA/SOPC开发快速入门教程_elecfans.com

    FPGA/SOPC开发快速入门教程_elecfans.com
    发表于 11-09 14:02 18次下载

    硬件工程师入门教程

    硬件工程师入门教程硬件工程师入门教程硬件工程师入门教程硬件工程师入门教程硬件工程师入门教程
    发表于 01-05 15:53 258次下载

    UG1926:ADuCM420开发系统:入门教程

    UG1926:ADuCM420开发系统:入门教程
    发表于 03-22 15:48 5次下载
    UG1926:ADuCM420<b class='flag-5'>开发</b>系统:<b class='flag-5'>入门教程</b>

    UG-481:ADuCRF101开发系统入门教程

    UG-481:ADuCRF101开发系统入门教程
    发表于 04-30 10:04 8次下载
    UG-481:ADuCRF101<b class='flag-5'>开发</b>系统<b class='flag-5'>入门教程</b>

    UG-829:ADuCM310开发系统入门教程

    UG-829:ADuCM310开发系统入门教程
    发表于 05-15 14:09 7次下载
    UG-829:ADuCM310<b class='flag-5'>开发</b>系统<b class='flag-5'>入门教程</b>

    UG-457:ADuCM360开发系统入门教程

    UG-457:ADuCM360开发系统入门教程
    发表于 05-24 08:29 23次下载
    UG-457:ADuCM360<b class='flag-5'>开发</b>系统<b class='flag-5'>入门教程</b>

    UG-910:ADuCM322开发系统入门教程

    UG-910:ADuCM322开发系统入门教程
    发表于 05-26 18:04 12次下载
    UG-910:ADuCM322<b class='flag-5'>开发</b>系统<b class='flag-5'>入门教程</b>

    VScode嵌入式开发入门教程

    VScode嵌入式开发入门教程1.VScode进行单片机嵌入式开发教程2.单片机开发环境的搭建3.相关技巧与设置
    发表于 11-03 09:51 44次下载
    VScode嵌入式<b class='flag-5'>开发</b>之<b class='flag-5'>入门教程</b>