谷动谷力

 找回密码
 立即注册
查看: 4323|回复: 1
打印 上一主题 下一主题
收起左侧

LVGL - 轻量级通用型图形库介绍

[复制链接]
跳转到指定楼层
楼主
发表于 2022-4-26 22:51:51 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
LVGL - Light and Versatile Graphics Library
LVGL - 轻量级通用型图形库


LVGL是一个高度可裁剪、低资源占用、界面美观且易用的嵌入式系统图形库

官网 · 文档 · 论坛 · 服务 · 例程
English | 中文 |

目录
概况与总览
如何入门
例程
服务
如何向社区贡献


概况与总览
特性
  • 丰富且强大的模块化图形组件:按钮 (buttons)、图表 (charts)、列表 (lists)、滑动条 (sliders)、图片 (images) 等
  • 高级的图形引擎:动画、抗锯齿、透明度、平滑滚动、图层混合等效果
  • 支持多种输入设备:触摸屏、 键盘、编码器、按键等
  • 支持多显示设备
  • 不依赖特定的硬件平台,可以在任何显示屏上运行
  • 配置可裁剪(最低资源占用:64 kB Flash,16 kB RAM)
  • 基于UTF-8的多语种支持,例如中文、日文、韩文、阿拉伯文等
  • 可以通过类CSS的方式来设计、布局图形界面(例如:Flexbox、Grid)
  • 支持操作系统、外置内存、以及硬件加速(LVGL已内建支持STM32 DMA2D、NXP PXP和VGLite)
  • 即便仅有单缓冲区(frame buffer)的情况下,也可保证渲染如丝般顺滑
  • 全部由C编写完成,并支持C++调用
  • 支持Micropython编程,参见:LVGL API in Micropython
  • 支持模拟器仿真,可以无硬件依托进行开发
  • 丰富详实的例程

详尽的文档以及API参考手册,可线上查阅或可下载为PDF格式


硬件要求
要求        最低要求        建议要求
架构        16、32、64位微控制器或微处理器
时钟        > 16 MHz        > 48 MHz
Flash/ROM        > 64 kB        > 180 kB
Static RAM        > 16 kB        > 48 kB
Draw buffer        > 1 × hor. res. pixels        > 1/10屏幕大小
编译器        C99或更新
注意:资源占用情况与具体硬件平台、编译器等因素有关,上表中仅给出参考值

已经支持的平台


LVGL本身并不依赖特定的硬件平台,任何满足LVGL硬件配置要求的微控制器均可运行LVGL。
如下仅列举其中一部分:

  • NXP: Kinetis, LPC, iMX, iMX RT
  • STM32F1, STM32F3, STM32F4, STM32F7, STM32L4, STM32L5, STM32H7
  • Microchip dsPIC33, PIC24, PIC32MX, PIC32MZ
  • Linux frame buffer (/dev/fb)
  • Raspberry Pi
  • Espressif ESP32
  • Infineon Aurix
  • Nordic NRF52 Bluetooth modules
  • Quectel modems



LVGL也支持:


Arduino library
PlatformIO package
Zephyr library
ESP32 component
NXP MCUXpresso component
NuttX library
RT-Thread RTOS



如何入门


请按照如下顺序来学习LVGL:

  • 使用网页在线例程来体验LVGL(3分钟)
  • 阅读文档简介章节来初步了解LVGL(5分钟)
  • 再来阅读一下文档快速快速概览章节来了解LVGL的基本知识(15分钟)
  • 学习如何使用模拟器来在电脑上仿真LVGL(10分钟)
  • 试着动手实践一些例程
  • 参考移植指南尝试将LVGL移植到一块开发板上,LVGL也已经提供了一些移植好的工程
  • 仔细阅读文档总览章节来更加深入的了解和熟悉LVGL(2-3小时)
  • 浏览文档组件(Widgets)章节来了解如何使用它们
  • 如果你有问题可以到LVGL论坛提问
  • 阅读文档如何向社区贡献章节来看看你能帮LVGL社区做些什么,以促进LVGL软件质量的不断提高(15分钟)

例程
更多例程请参见 examples 文件夹。
  1. /*
  2. LVGL button with label example

  3. C
复制代码

Micropython
更多信息请到 Micropython官网 查询.

  1. def btn_event_cb(e):
  2.   print("Clicked")

  3. # Create a Button and a Label
  4. btn = lv.btn(lv.scr_act())
  5. btn.set_pos(10, 10)
  6. btn.set_size(100, 50)
  7. btn.add_event_cb(btn_event_cb, lv.EVENT.CLICKED, None)

  8. label = lv.label(btn)
  9. label.set_text("Button")
  10. label.center()
复制代码

服务



LVGL 责任有限公司成立的目的是为了给用户使用LVGL图形库提供额外的技术支持,我们致力于提供以下服务:

图形设计

UI设计

技术咨询以及技术支持
更多信息请参见 https://lvgl.io/services ,如果有任何问题请随时联系我们。

如何向社区贡献
LVGL是一个开源项目,非常欢迎您参与到社区贡献当中。您有很多种方式来为提高LVGL贡献您的一份力量,包括但不限于:

介绍你基于LVGL设计的作品或项目
写一些例程
修改以及完善文档
修复bug
请参见文档如何向社区贡献章节来获取更多信息。

+10

本帖被以下淘专辑推荐:

回复

使用道具 举报

沙发
 楼主| 发表于 2022-4-27 00:14:23 | 只看该作者
更多今例程https://lvgl.io/demos
+10
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|深圳市光明谷科技有限公司|光明谷商城|Sunshine Silicon Corpporation ( 粤ICP备14060730号|Sitemap

GMT+8, 2024-11-17 08:40 , Processed in 0.278459 second(s), 44 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表