• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..--

.github/11-Mar-2024-547471

demos/11-Mar-2024-30,19027,422

docs/11-Mar-2024-12,7129,283

env_support/11-Mar-2024-2,0421,184

examples/11-Mar-2024-23,48217,584

scripts/11-Mar-2024-3,8952,916

src/11-Mar-2024-261,354210,979

tests/11-Mar-2024-11,2698,628

zephyr/11-Mar-2024-1,5651,173

.codecov.ymlD11-Mar-2024113 98

.editorconfigD11-Mar-2024128 76

.gitignoreD11-Mar-2024342 2524

CMakeLists.txtD11-Mar-2024520 1814

KconfigD11-Mar-202438.4 KiB1,040918

LICENCE.txtD11-Mar-20241 KiB95

README.mdD11-Mar-20247.9 KiB186152

README_zh.mdD11-Mar-20248.1 KiB194154

SConscriptD11-Mar-2024192 127

component.mkD11-Mar-20241.2 KiB3530

idf_component.ymlD11-Mar-202491 22

library.jsonD11-Mar-2024525 1817

library.propertiesD11-Mar-2024390 1110

lv_conf_template.hD11-Mar-202423.2 KiB701288

lvgl.hD11-Mar-20242.9 KiB14470

lvgl.mkD11-Mar-2024578 1110

README.md

1<h1 align="center"> LVGL - Light and Versatile Graphics Library</h1>
2
3<p align="center">
4<img src="https://lvgl.io/assets/images/lvgl_widgets_demo.gif">
5</p>
6
7<p align="center">
8LVGL provides everything you need to create an embedded GUI with easy-to-use graphical elements, beautiful visual effects and a low memory footprint.
9</p>
10
11<h4 align="center">
12<a href="https://lvgl.io">Website </a> &middot;
13<a href="https://docs.lvgl.io/">Docs</a> &middot;
14<a href="https://forum.lvgl.io">Forum</a>  &middot;
15<a href="https://lvgl.io/services">Services</a>  &middot;
16<a href="https://docs.lvgl.io/master/examples.html">Interactive examples</a>
17</h4>
18
19
20**English** | [中文](./README_zh.md) |
21
22
23---
24
25#### Table of content
26- [Overview](#overview)
27- [Get started](#get-started)
28- [Examples](#examples)
29- [Services](#services)
30- [Contributing](#contributing)
31
32## Overview
33### Features
34* Powerful [building blocks](https://docs.lvgl.io/master/widgets/index.html): buttons, charts, lists, sliders, images, etc.
35* Advanced graphics engine: animations, anti-aliasing, opacity, smooth scrolling, blending modes, etc
36* Supports [various input devices](https://docs.lvgl.io/master/overview/indev.html): touchscreen, mouse, keyboard, encoder, buttons, etc.
37* Supports [multiple displays](https://docs.lvgl.io/master/overview/display.html)
38* Hardware independent, can be use with any microcontroller and display
39* Scalable to operate with little memory (64 kB Flash, 16 kB RAM)
40* Multi-language support with UTF-8 handling, CJK, Bidirectional and Arabic script support
41* Fully customizable graphical elements via [CSS-like styles](https://docs.lvgl.io/master/overview/style.html)
42* Powerful layouts inspired by CSS: [Flexbox](https://docs.lvgl.io/master/layouts/flex.html) and [Grid](https://docs.lvgl.io/master/layouts/grid.html)
43* OS, External memory and GPU are supported but not required. (built in support for STM32 DMA2D, and NXP PXP and VGLite)
44* Smooth rendering even with a [single frame buffer](https://docs.lvgl.io/master/porting/display.html)
45* Written in C and compatible with C++
46* Micropython Binding exposes [LVGL API in Micropython](https://blog.lvgl.io/2019-02-20/micropython-bindings)
47* [Simulator](https://docs.lvgl.io/master/get-started/pc-simulator.html) to develop on PC without embedded hardware
48* 100+ simple [Examples](https://github.com/lvgl/lvgl/tree/master/examples)
49* [Documentation](http://docs.lvgl.io/) and API references online and in PDF
50
51### Requirements
52Basically, every modern controller (which is able to drive a display) is suitable to run LVGL. The minimal requirements are:
53<table>
54  <tr>
55    <td> <strong>Name</strong> </td>
56    <td><strong>Minimal</strong></td>
57    <td><strong>Recommended</strong></td>
58  </tr>
59  <tr>
60    <td><strong>Architecture</strong></td>
61    <td colspan="2">16, 32 or 64 bit microcontroller or processor</td>
62  </tr>
63  <tr>
64    <td> <strong>Clock</strong></td>
65    <td> &gt; 16 MHz </td>
66    <td> &gt; 48 MHz</td>
67  </tr>
68
69  <tr>
70    <td> <strong>Flash/ROM</strong></td>
71    <td> &gt; 64 kB </td>
72    <td> &gt; 180 kB</td>
73  </tr>
74
75  <tr>
76    <td> <strong>Static RAM</strong></td>
77    <td> &gt; 16 kB </td>
78    <td> &gt; 48 kB</td>
79  </tr>
80
81  <tr>
82    <td> <strong>Draw buffer</strong></td>
83    <td> &gt; 1 &times; <em>hor. res.</em> pixels </td>
84    <td> &gt; 1/10 screen size </td>
85  </tr>
86
87  <tr>
88    <td> <strong>Compiler</strong></td>
89    <td colspan="2"> C99 or newer </td>
90  </tr>
91</table>
92
93*Note that the memory usage might vary depending on the architecture, compiler and build options.*
94
95### Supported platforms
96LVGL is completely platform independent and can be used with any MCU that fulfills the requirements.
97Just to mention some platforms:
98- NXP: Kinetis, LPC, iMX, iMX RT
99- STM32F1, STM32F3, STM32F4, STM32F7, STM32L4, STM32L5, STM32H7
100- Microchip dsPIC33, PIC24, PIC32MX, PIC32MZ
101- [Linux frame buffer](https://blog.lvgl.io/2018-01-03/linux_fb) (/dev/fb)
102- [Raspberry Pi](http://www.vk3erw.com/index.php/16-software/63-raspberry-pi-official-7-touchscreen-and-littlevgl)
103- [Espressif ESP32](https://github.com/lvgl/lv_port_esp32)
104- [Infineon Aurix](https://github.com/lvgl/lv_port_aurix)
105- Nordic NRF52 Bluetooth modules
106- Quectel modems
107
108LVGL is also available as:
109- [Arduino library](https://docs.lvgl.io/master/get-started/arduino.html)
110- [PlatformIO package](https://platformio.org/lib/show/12440/lvgl)
111- [Zephyr library](https://docs.zephyrproject.org/latest/reference/kconfig/CONFIG_LVGL.html)
112- [ESP32 component](https://docs.lvgl.io/master/get-started/espressif.html)
113- [NXP MCUXpresso component](https://www.nxp.com/design/software/embedded-software/lvgl-open-source-graphics-library:LITTLEVGL-OPEN-SOURCE-GRAPHICS-LIBRARY)
114- [NuttX library](https://docs.lvgl.io/master/get-started/nuttx.html)
115- [RT-Thread RTOS](https://docs.lvgl.io/master/get-started/rt-thread.html)
116
117
118## Get started
119This list shows the recommended way of learning the library:
1201. Check the [Online demos](https://lvgl.io/demos) to see LVGL in action (3 minutes)
1212. Read the [Introduction](https://docs.lvgl.io/master/intro/index.html) page of the documentation (5 minutes)
1223. Get familiar with the basics on the [Quick overview](https://docs.lvgl.io/master/get-started/quick-overview.html) page (15 minutes)
1234. Set up a [Simulator](https://docs.lvgl.io/master/get-started/pc-simulator.html) (10 minutes)
1245. Try out some [Examples](https://github.com/lvgl/lvgl/tree/master/examples)
1256. Port LVGL to a board. See the [Porting](https://docs.lvgl.io/master/porting/index.html) guide or check the ready to use [Projects](https://github.com/lvgl?q=lv_port_)
1267. Read the [Overview](https://docs.lvgl.io/master/overview/index.html) page to get a better understanding of the library (2-3 hours)
1278. Check the documentation of the [Widgets](https://docs.lvgl.io/master/widgets/index.html) to see their features and usage
1289. If you have questions go to the [Forum](http://forum.lvgl.io/)
12910. Read the [Contributing](https://docs.lvgl.io/master/CONTRIBUTING.html) guide to see how you can help to improve LVGL (15 minutes)
130
131## Examples
132
133For more examples see the [examples](https://github.com/lvgl/lvgl/tree/master/examples) folder.
134
135![LVGL button with label example](https://github.com/lvgl/lvgl/raw/master/docs/misc/btn_example.png)
136
137### C
138```c
139lv_obj_t * btn = lv_btn_create(lv_scr_act());                   /*Add a button to the current screen*/
140lv_obj_set_pos(btn, 10, 10);                                    /*Set its position*/
141lv_obj_set_size(btn, 100, 50);                                  /*Set its size*/
142lv_obj_add_event_cb(btn, btn_event_cb, LV_EVENT_CLICKED, NULL); /*Assign a callback to the button*/
143
144lv_obj_t * label = lv_label_create(btn);                        /*Add a label to the button*/
145lv_label_set_text(label, "Button");                             /*Set the labels text*/
146lv_obj_center(label);                                           /*Align the label to the center*/
147...
148
149void btn_event_cb(lv_event_t * e)
150{
151  printf("Clicked\n");
152}
153```
154### Micropython
155Learn more about [Micropython](https://docs.lvgl.io/master/get-started/micropython.html).
156```python
157def btn_event_cb(e):
158  print("Clicked")
159
160# Create a Button and a Label
161btn = lv.btn(lv.scr_act())
162btn.set_pos(10, 10)
163btn.set_size(100, 50)
164btn.add_event_cb(btn_event_cb, lv.EVENT.CLICKED, None)
165
166label = lv.label(btn)
167label.set_text("Button")
168label.center()
169```
170
171## Services
172LVGL Kft was established to provide a solid background for LVGL library. We offer several type of services to help you in UI development:
173- Graphics design
174- UI implementation
175- Consulting/Support
176
177For more information see https://lvgl.io/services
178Feel free to contact us if you have any questions.
179
180
181## Contributing
182LVGL is an open project and contribution is very welcome. There are many ways to contribute from simply speaking about your project, through writing examples, improving the documentation, fixing bugs to hosting your own project under the LVGL organization.
183
184For a detailed description of contribution opportunities visit the [Contributing](https://docs.lvgl.io/master/CONTRIBUTING.html) section of the documentation.
185
186

README_zh.md

1<h1 align="center"> LVGL - Light and Versatile Graphics Library</h1>
2<h2 align="center"> LVGL - 轻量级通用型图形库</h2>
3
4
5
6<p align="center">
7<img src="https://lvgl.io/assets/images/lvgl_widgets_demo.gif">
8</p>
9<p align="center">
10LVGL是一个高度可裁剪、低资源占用、界面美观且易用的嵌入式系统图形库
11</p>
12
13
14<h4 align="center">
15<a href="https://lvgl.io">官网</a> &middot;
16<a href="https://docs.lvgl.io/">文档</a> &middot;
17<a href="https://forum.lvgl.io">论坛</a>  &middot;
18<a href="https://lvgl.io/services">服务</a>  &middot;
19<a href="https://docs.lvgl.io/master/examples.html">例程</a>
20</h4>
21
22
23[English](./README.md) | **中文** |
24
25
26---
27
28#### 目录
29- [概况与总览](#概况与总览)
30- [如何入门](#如何入门)
31- [例程](#例程)
32- [服务](#服务)
33- [如何向社区贡献](#如何向社区贡献)
34
35## 概况与总览
36### 特性
37* 丰富且强大的模块化[图形组件](https://docs.lvgl.io/master/widgets/index.html):按钮 (buttons)、图表 (charts)、列表 (lists)、滑动条 (sliders)、图片 (images) 等
38* 高级的图形引擎:动画、抗锯齿、透明度、平滑滚动、图层混合等效果
39* 支持多种[输入设备](https://docs.lvgl.io/master/overview/indev.html):触摸屏、 键盘、编码器、按键等
40* 支持[多显示设备](https://docs.lvgl.io/master/overview/display.html)
41* 不依赖特定的硬件平台,可以在任何显示屏上运行
42* 配置可裁剪(最低资源占用:64 kB Flash,16 kB RAM)
43* 基于UTF-8的多语种支持,例如中文、日文、韩文、阿拉伯文等
44* 可以通过[类CSS](https://docs.lvgl.io/master/overview/style.html)的方式来设计、布局图形界面(例如:[Flexbox](https://docs.lvgl.io/master/layouts/flex.html)、[Grid](https://docs.lvgl.io/master/layouts/grid.html)45* 支持操作系统、外置内存、以及硬件加速(LVGL已内建支持STM32 DMA2D、NXP PXP和VGLite)
46* 即便仅有[单缓冲区(frame buffer)](https://docs.lvgl.io/master/porting/display.html)的情况下,也可保证渲染如丝般顺滑
47* 全部由C编写完成,并支持C++调用
48* 支持Micropython编程,参见:[LVGL API in Micropython](https://blog.lvgl.io/2019-02-20/micropython-bindings)
49* 支持[模拟器](https://docs.lvgl.io/master/get-started/pc-simulator.html)仿真,可以无硬件依托进行开发
50* 丰富详实的[例程](https://github.com/lvgl/lvgl/tree/master/examples)
51* 详尽的[文档](http://docs.lvgl.io/)以及API参考手册,可线上查阅或可下载为PDF格式
52
53### 硬件要求
54
55<table>
56  <tr>
57    <td> <strong>要求</strong> </td>
58    <td><strong>最低要求</strong></td>
59    <td><strong>建议要求</strong></td>
60  </tr>
61  <tr>
62    <td><strong>架构</strong></td>
63    <td colspan="2">16、32、64位微控制器或微处理器</td>
64  </tr>
65  <tr>
66    <td> <strong>时钟</strong></td>
67    <td> &gt; 16 MHz</td>
68    <td> &gt; 48 MHz</td>
69  </tr>
70
71  <tr>
72    <td> <strong>Flash/ROM</strong></td>
73    <td> &gt; 64 kB </td>
74    <td> &gt; 180 kB</td>
75  </tr>
76
77  <tr>
78    <td> <strong>Static RAM</strong></td>
79    <td> &gt; 16 kB </td>
80    <td> &gt; 48 kB</td>
81  </tr>
82
83  <tr>
84    <td> <strong>Draw buffer</strong></td>
85    <td> &gt; 1 &times; <em>hor. res.</em> pixels </td>
86    <td> &gt; 1/10屏幕大小 </td>
87  </tr>
88
89  <tr>
90    <td> <strong>编译器</strong></td>
91    <td colspan="2"> C99或更新 </td>
92  </tr>
93</table>
94
95*注意:资源占用情况与具体硬件平台、编译器等因素有关,上表中仅给出参考值*
96
97### 已经支持的平台
98LVGL本身并不依赖特定的硬件平台,任何满足LVGL硬件配置要求的微控制器均可运行LVGL。
99如下仅列举其中一部分:
100
101- NXP: Kinetis, LPC, iMX, iMX RT
102- STM32F1, STM32F3, STM32F4, STM32F7, STM32L4, STM32L5, STM32H7
103- Microchip dsPIC33, PIC24, PIC32MX, PIC32MZ
104- [Linux frame buffer](https://blog.lvgl.io/2018-01-03/linux_fb) (/dev/fb)
105- [Raspberry Pi](http://www.vk3erw.com/index.php/16-software/63-raspberry-pi-official-7-touchscreen-and-littlevgl)
106- [Espressif ESP32](https://github.com/lvgl/lv_port_esp32)
107- [Infineon Aurix](https://github.com/lvgl/lv_port_aurix)
108- Nordic NRF52 Bluetooth modules
109- Quectel modems
110
111LVGL也支持:
112- [Arduino library](https://docs.lvgl.io/master/get-started/arduino.html)
113- [PlatformIO package](https://platformio.org/lib/show/12440/lvgl)
114- [Zephyr library](https://docs.zephyrproject.org/latest/reference/kconfig/CONFIG_LVGL.html)
115- [ESP32 component](https://docs.lvgl.io/master/get-started/espressif.html)
116- [NXP MCUXpresso component](https://www.nxp.com/design/software/embedded-software/lvgl-open-source-graphics-library:LITTLEVGL-OPEN-SOURCE-GRAPHICS-LIBRARY)
117- [NuttX library](https://docs.lvgl.io/master/get-started/nuttx.html)
118- [RT-Thread RTOS](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/packages-manual/lvgl-docs/introduction)
119
120
121## 如何入门
122请按照如下顺序来学习LVGL:
1231. 使用[网页在线例程](https://lvgl.io/demos)来体验LVGL(3分钟)
1242. 阅读文档[简介](https://docs.lvgl.io/master/intro/index.html)章节来初步了解LVGL(5分钟)
1253. 再来阅读一下文档快速[快速概览](https://docs.lvgl.io/master/get-started/quick-overview.html)章节来了解LVGL的基本知识(15分钟)
1264. 学习如何使用[模拟器](https://docs.lvgl.io/master/get-started/pc-simulator.html)来在电脑上仿真LVGL(10分钟)
1275. 试着动手实践一些[例程](https://github.com/lvgl/lvgl/tree/master/examples)
1286. 参考[移植指南](https://docs.lvgl.io/master/porting/index.html)尝试将LVGL移植到一块开发板上,LVGL也已经提供了一些移植好的[工程](https://github.com/lvgl?q=lv_port_)
1297. 仔细阅读文档[总览](https://docs.lvgl.io/master/overview/index.html)章节来更加深入的了解和熟悉LVGL(2-3小时)
1308. 浏览文档[组件(Widgets)](https://docs.lvgl.io/master/widgets/index.html)章节来了解如何使用它们
1319. 如果你有问题可以到LVGL[论坛](http://forum.lvgl.io/)提问
13210. 阅读文档[如何向社区贡献](https://docs.lvgl.io/master/CONTRIBUTING.html)章节来看看你能帮LVGL社区做些什么,以促进LVGL软件质量的不断提高(15分钟)
133
134## 例程
135
136更多例程请参见 [examples](https://github.com/lvgl/lvgl/tree/master/examples) 文件夹。
137
138![LVGL button with label example](https://github.com/lvgl/lvgl/raw/master/docs/misc/btn_example.png)
139
140### C
141```c
142lv_obj_t * btn = lv_btn_create(lv_scr_act());                   /*Add a button to the current screen*/
143lv_obj_set_pos(btn, 10, 10);                                    /*Set its position*/
144lv_obj_set_size(btn, 100, 50);                                  /*Set its size*/
145lv_obj_add_event_cb(btn, btn_event_cb, LV_EVENT_CLICKED, NULL); /*Assign a callback to the button*/
146
147lv_obj_t * label = lv_label_create(btn);                        /*Add a label to the button*/
148lv_label_set_text(label, "Button");                             /*Set the labels text*/
149lv_obj_center(label);                                           /*Align the label to the center*/
150...
151
152void btn_event_cb(lv_event_t * e)
153{
154  printf("Clicked\n");
155}
156```
157### Micropython
158更多信息请到 [Micropython官网](https://docs.lvgl.io/master/get-started/micropython.html) 查询.
159```python
160def btn_event_cb(e):
161  print("Clicked")
162
163# Create a Button and a Label
164btn = lv.btn(lv.scr_act())
165btn.set_pos(10, 10)
166btn.set_size(100, 50)
167btn.add_event_cb(btn_event_cb, lv.EVENT.CLICKED, None)
168
169label = lv.label(btn)
170label.set_text("Button")
171label.center()
172```
173
174## 服务
175LVGL 责任有限公司成立的目的是为了给用户使用LVGL图形库提供额外的技术支持,我们致力于提供以下服务:
176
177- 图形设计
178- UI设计
179- 技术咨询以及技术支持
180
181更多信息请参见 https://lvgl.io/services ,如果有任何问题请随时联系我们。
182
183
184## 如何向社区贡献
185LVGL是一个开源项目,非常欢迎您参与到社区贡献当中。您有很多种方式来为提高LVGL贡献您的一份力量,包括但不限于:
186
187- 介绍你基于LVGL设计的作品或项目
188- 写一些例程
189- 修改以及完善文档
190- 修复bug
191
192请参见文档[如何向社区贡献](https://docs.lvgl.io/master/CONTRIBUTING.html)章节来获取更多信息。
193
194