lvgllvgl(轻巧而多功能的图形库)是一个免费的开放源代码图形库,它提供创建具有易于使用的图形元素,精美的视觉效果和低内存占用的嵌入式GUI所需的一切。
LVGL 由最初一个大学生做的,现在已经开了公司维护了。
官方介绍特性如下:
Powerful building blocks such as buttons, charts, lists, sliders, images, etc.
Advanced graphics with animations, anti-aliasing, opacity, smooth scrolling
Various input devices such as touchpad, mouse, keyboard, encoder, etc.
Multi-language support with UTF-8 encoding
Multi-display support, i.e. use multiple TFT, monochrome displays simultaneously
Fully customizable graphic elements with CSS-like styles
Hardware independent: use with any microcontroller or display
Scalable: able to operate with little memory (64 kB Flash, 16 kB RAM)
OS, external memory and GPU are supported but not required
Single frame buffer operation even with advanced graphic effects
Written in C for maximal compatibility (C++ compatible)
Simulator to start embedded GUI design on a PC without embedded hardware
Binding to MicroPython
Tutorials, examples, themes for rapid GUI design
Documentation is available online and as PDF
Free and open-source under MIT license
强大的构建块,如按钮、图表、列表、滑块、图像等。
具有动画、抗锯齿、不透明度、平滑滚动的高级图形
各种输入设备,如触摸板、鼠标、键盘、编码器等。
多语言支持 UTF-8 编码
多显示器支持,即同时使用多个TFT、单色显示器
具有类似 CSS 样式的完全可定制的图形元素
独立于硬件:与任何微控制器或显示器一起使用
可扩展:能够以很少的内存运行(64 kB Flash,16 kB RAM)
支持但不是必需的操作系统、外部存储器和 GPU
即使具有高级图形效果的单帧缓冲区操作
用 C 编写以获得最大的兼容性(C++ 兼容)
在没有嵌入式硬件的 PC 上启动嵌入式 GUI 设计的模拟器
绑定到 MicroPython
快速 GUI 设计的教程、示例、主题
文档可在线获取并以 PDF 格式提供
在 MIT 许可下免费和开源
地址 :https://lvgl.io/
支持硬件:
每个能够通过并行端口、SPI、RGB 接口或其他任何方式驱动显示器并满足 要求 LVGL 支持 的 MCU。
这包括:
“常见” MCU,如 STM32F、STM32H、NXP Kinetis、LPC、IMX、dsPIC33、PIC32 等。
蓝牙、GSM、Wi-Fi 模块,如 Nordic NRF 和 Espressif ESP32
带有帧缓冲设备的 Linux,例如 /dev/fb0。 这包括单板计算机,如 Raspberry Pi
任何其他具有足够强大 MCU 和外围设备来驱动显示器的设备
LVGL 只需要一个简单的驱动程序函数即可将像素阵列复制到显示器的给定区域。 如果你可以用你的显示器做到这一点,那么你就可以将它与 LVGL 一起使用。
支持的显示类型的一些示例:
具有 16 位或 24 位色深的 TFT
带有 HDMI 端口的显示器
小型单色显示器
灰度显示
甚至 LED 矩阵
或任何其他可以控制像素颜色/状态的显示器