|
Name |
|
Date |
Size |
#Lines |
LOC |
| .. | | - | - |
| .github/ | | 03-Aug-2024 | - | 594 | 505 |
| demos/ | | 03-Aug-2024 | - | 29,636 | 27,151 |
| docs/ | | 03-Aug-2024 | - | 14,080 | 10,191 |
| env_support/ | | 03-Aug-2024 | - | 2,726 | 1,678 |
| examples/ | | 03-Aug-2024 | - | 24,879 | 18,650 |
| scripts/ | | 03-Aug-2024 | - | 3,915 | 2,937 |
| src/ | | 03-Aug-2024 | - | 281,617 | 224,792 |
| tests/ | | 03-Aug-2024 | - | 24,226 | 21,290 |
| zephyr/ | | 03-Aug-2024 | - | 6 | 4 |
| .codecov.yml | D | 03-Aug-2024 | 113 | 9 | 8 |
| .editorconfig | D | 03-Aug-2024 | 128 | 7 | 6 |
| .gitignore | D | 03-Aug-2024 | 366 | 28 | 27 |
| .pre-commit-config.yaml | D | 03-Aug-2024 | 891 | 30 | 25 |
| CMakeLists.txt | D | 03-Aug-2024 | 520 | 18 | 14 |
| Kconfig | D | 03-Aug-2024 | 42.5 KiB | 1,142 | 1,011 |
| LICENCE.txt | D | 03-Aug-2024 | 1 KiB | 9 | 5 |
| README.md | D | 03-Aug-2024 | 8 KiB | 187 | 153 |
| README_pt_BR.md | D | 03-Aug-2024 | 8.9 KiB | 207 | 174 |
| README_zh.md | D | 03-Aug-2024 | 8.2 KiB | 194 | 155 |
| SConscript | D | 03-Aug-2024 | 192 | 12 | 7 |
| component.mk | D | 03-Aug-2024 | 1.2 KiB | 35 | 30 |
| idf_component.yml | D | 03-Aug-2024 | 205 | 6 | 5 |
| library.json | D | 03-Aug-2024 | 525 | 18 | 17 |
| library.properties | D | 03-Aug-2024 | 390 | 11 | 10 |
| lv_conf_template.h | D | 03-Aug-2024 | 25.9 KiB | 785 | 326 |
| lvgl.h | D | 03-Aug-2024 | 2.7 KiB | 139 | 65 |
| lvgl.mk | D | 03-Aug-2024 | 521 | 10 | 9 |
| lvgl.pc.in | D | 03-Aug-2024 | 242 | 11 | 9 |
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> ·
13<a href="https://docs.lvgl.io/">Docs</a> ·
14<a href="https://forum.lvgl.io">Forum</a> ·
15<a href="https://lvgl.io/services">Services</a> ·
16<a href="https://docs.lvgl.io/master/examples.html">Interactive examples</a>
17</h4>
18
19
20**English** | [中文](./README_zh.md) | [Português do Brasil](./README_pt_BR.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, SWM341 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/platforms/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> > 16 MHz </td>
66 <td> > 48 MHz</td>
67 </tr>
68
69 <tr>
70 <td> <strong>Flash/ROM</strong></td>
71 <td> > 64 kB </td>
72 <td> > 180 kB</td>
73 </tr>
74
75 <tr>
76 <td> <strong>Static RAM</strong></td>
77 <td> > 16 kB </td>
78 <td> > 48 kB</td>
79 </tr>
80
81 <tr>
82 <td> <strong>Draw buffer</strong></td>
83 <td> > 1 × <em>hor. res.</em> pixels </td>
84 <td> > 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](https://github.com/lvgl/lv_port_linux_frame_buffer)
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- [SYNWIT SWM341](http://www.synwit.cn/)
108
109LVGL is also available as:
110- [Arduino library](https://docs.lvgl.io/master/get-started/platforms/arduino.html)
111- [PlatformIO package](https://registry.platformio.org/libraries/lvgl/lvgl)
112- [Zephyr library](https://docs.zephyrproject.org/latest/reference/kconfig/CONFIG_LVGL.html)
113- [ESP32 component](https://docs.lvgl.io/master/get-started/platforms/espressif.html)
114- [NXP MCUXpresso component](https://www.nxp.com/design/software/embedded-software/lvgl-open-source-graphics-library:LITTLEVGL-OPEN-SOURCE-GRAPHICS-LIBRARY)
115- [NuttX library](https://docs.lvgl.io/master/get-started/os/nuttx.html)
116- [RT-Thread RTOS](https://docs.lvgl.io/master/get-started/os/rt-thread.html)
117
118
119## Get started
120This list shows the recommended way of learning the library:
1211. Check the [Online demos](https://lvgl.io/demos) to see LVGL in action (3 minutes)
1222. Read the [Introduction](https://docs.lvgl.io/master/intro/index.html) page of the documentation (5 minutes)
1233. Get familiar with the basics on the [Quick overview](https://docs.lvgl.io/master/get-started/quick-overview.html) page (15 minutes)
1244. Set up a [Simulator](https://docs.lvgl.io/master/get-started/platforms/pc-simulator.html) (10 minutes)
1255. Try out some [Examples](https://github.com/lvgl/lvgl/tree/master/examples)
1266. 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_)
1277. Read the [Overview](https://docs.lvgl.io/master/overview/index.html) page to get a better understanding of the library (2-3 hours)
1288. Check the documentation of the [Widgets](https://docs.lvgl.io/master/widgets/index.html) to see their features and usage
1299. If you have questions go to the [Forum](http://forum.lvgl.io/)
13010. Read the [Contributing](https://docs.lvgl.io/master/CONTRIBUTING.html) guide to see how you can help to improve LVGL (15 minutes)
131
132## Examples
133
134For more examples see the [examples](https://github.com/lvgl/lvgl/tree/master/examples) folder.
135
136![LVGL button with label example](https://github.com/lvgl/lvgl/raw/master/docs/misc/btn_example.png)
137
138### C
139```c
140lv_obj_t * btn = lv_btn_create(lv_scr_act()); /*Add a button to the current screen*/
141lv_obj_set_pos(btn, 10, 10); /*Set its position*/
142lv_obj_set_size(btn, 100, 50); /*Set its size*/
143lv_obj_add_event_cb(btn, btn_event_cb, LV_EVENT_CLICKED, NULL); /*Assign a callback to the button*/
144
145lv_obj_t * label = lv_label_create(btn); /*Add a label to the button*/
146lv_label_set_text(label, "Button"); /*Set the labels text*/
147lv_obj_center(label); /*Align the label to the center*/
148...
149
150void btn_event_cb(lv_event_t * e)
151{
152 printf("Clicked\n");
153}
154```
155### Micropython
156Learn more about [Micropython](https://docs.lvgl.io/master/get-started/bindings/micropython.html).
157```python
158def btn_event_cb(e):
159 print("Clicked")
160
161# Create a Button and a Label
162btn = lv.btn(lv.scr_act())
163btn.set_pos(10, 10)
164btn.set_size(100, 50)
165btn.add_event_cb(btn_event_cb, lv.EVENT.CLICKED, None)
166
167label = lv.label(btn)
168label.set_text("Button")
169label.center()
170```
171
172## Services
173LVGL Kft was established to provide a solid background for LVGL library. We offer several type of services to help you in UI development:
174- Graphics design
175- UI implementation
176- Consulting/Support
177
178For more information see https://lvgl.io/services
179Feel free to contact us if you have any questions.
180
181
182## Contributing
183LVGL 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.
184
185For a detailed description of contribution opportunities visit the [Contributing](https://docs.lvgl.io/master/CONTRIBUTING.html) section of the documentation.
186
187
README_pt_BR.md
1<h1 align="center"> LVGL - Biblioteca gráfica leve e versátil</h1>
2<p align="center">
3 <img src="https://lvgl.io/assets/images/lvgl_widgets_demo.gif">
4</p>
5<p align="center">
6 O LVGL fornece tudo o que você precisa para criar uma GUI incorporada com elementos gráficos fáceis de usar, belos efeitos visuais e um baixo consumo de memória.
7</p>
8<h4 align="center">
9 <a href="https://lvgl.io">Site</a> ·
10 <a href="https://docs.lvgl.io/">Documentação</a> ·
11 <a href="https://forum.lvgl.io">Fórum</a> ·
12 <a href="https://lvgl.io/services">Serviços</a> ·
13 <a href="https://docs.lvgl.io/master/examples.html">Exemplos interativos</a>
14</h4>
15
16[English](./README.md) | [中文](./README_zh.md) | **Português do Brasil**
17
18---
19
20### Tabela de conteúdo
21
22- [Visão Geral](#visão-geral)
23- [Iniciando](#iniciando)
24- [Exemplos](#exemplos)
25- [Serviços](#serviços)
26- [Contribuindo](#contribuindo)
27
28## Visão Geral
29
30### Recursos
31* Poderosos [widgets](https://docs.lvgl.io/master/widgets/index.html): botões, gráficos, listas, controles deslizantes (sliders), imagens, etc.
32* Mecanismo gráfico avançado: animações, anti-aliasing, opacidade, rolagem suave, modos de mesclagem (blending modes), etc.
33* Suporte à [vários dispositivos de entrada](https://docs.lvgl.io/master/overview/indev.html): tela sensível ao toque, mouse, teclado, codificador, botões, etc.
34* Suporte à [vários monitores](https://docs.lvgl.io/master/overview/display.html)
35* Pode ser usado com qualquer microcontrolador e display, independente do hardware
36* Escalável para operar com pouca memória (64 kB Flash, 16 kB RAM)
37* Suporte multilíngue com manipulação UTF-8, suporte ao alfabeto bidirecional, árabe e CJK (Chinês, Japonês e Coreano)
38* Elementos gráficos totalmente personalizáveis por meio de [CSS](https://docs.lvgl.io/master/overview/style.html)
39* Layouts poderosos inspirados em CSS: [Flexbox](https://docs.lvgl.io/master/layouts/flex.html) e [Grid](https://docs.lvgl.io/master/layouts/grid.html)
40* SO, memória externa e GPU são suportados, mas não obrigatórios. (suporte integrado para STM32 DMA2D, SWM341 DMA2D e NXP PXP e VGLite)
41* Renderização suave mesmo com um [buffer de quadro único](https://docs.lvgl.io/master/porting/display.html) (single frame buffer)
42* Escrito em C e compatível com C++
43* Uso do LittlevGL com Micropython simplificado com [LVGL API in Micropython](https://blog.lvgl.io/2019-02-20/micropython-bindings)
44* [Simulador](https://docs.lvgl.io/master/get-started/platforms/pc-simulator.html) para desenvolver no PC sem hardware embutido
45* Mais de 100 [exemplos simples](https://github.com/lvgl/lvgl/tree/master/examples)
46* [Documentação](http://docs.lvgl.io/) e referências de API online e em PDF
47
48### Requerimentos
49Basicamente, todo controlador moderno (que é capaz de acionar um display) é adequado para executar LVGL. Os requisitos mínimos são:
50
51<table>
52 <tr>
53 <td>
54 <strong>Nome</strong>
55 </td>
56 <td>
57 <strong>Minímo</strong>
58 </td>
59 <td>
60 <strong>Recomendado</strong>
61 </td>
62 </tr>
63 <tr>
64 <td>
65 <strong>Arquitetura</strong>
66 </td>
67 <td colspan="2">Microcontrolador ou processador de 16, 32 ou 64 bits</td>
68 </tr>
69 <tr>
70 <td>
71 <strong>Clock</strong>
72 </td>
73 <td>> 16 MHz</td>
74 <td>> 48 MHz</td>
75 </tr>
76 <tr>
77 <td>
78 <strong>Flash/ROM</strong>
79 </td>
80 <td>> 64 kB</td>
81 <td>> 180 kB</td>
82 </tr>
83
84 <tr>
85 <td>
86 <strong>RAM estática</strong>
87 </td>
88 <td>> 16 kB</td>
89 <td>> 48 kB</td>
90 </tr>
91
92 <tr>
93 <td>
94 <strong>Draw buffer</strong>
95 </td>
96 <td>> 1 × <em>hor. res.</em> pixels</td>
97 <td>> tamanho da tela de 1/10</td>
98 </tr>
99
100 <tr>
101 <td>
102 <strong>Compilador</strong>
103 </td>
104 <td colspan="2">Padrão C99 ou mais recente</td>
105 </tr>
106</table>
107
108*Observe que o uso de memória pode variar dependendo da arquitetura, do compilador e das opções de compilação.*
109
110### Plataformas suportadas
111O LVGL é completamente independente de plataforma e pode ser usado com qualquer MCU que atenda aos requisitos.
112Apenas para citar algumas plataformas:
113
114- NXP: Kinetis, LPC, iMX, iMX RT
115- STM32F1, STM32F3, STM32F4, STM32F7, STM32L4, STM32L5, STM32H7
116- Microchip dsPIC33, PIC24, PIC32MX, PIC32MZ
117- [Linux frame buffer](https://blog.lvgl.io/2018-01-03/linux_fb) (/dev/fb)
118- [Raspberry Pi](http://www.vk3erw.com/index.php/16-software/63-raspberry-pi-official-7-touchscreen-and-littlevgl)
119- [Espressif ESP32](https://github.com/lvgl/lv_port_esp32)
120- [Infineon Aurix](https://github.com/lvgl/lv_port_aurix)
121- Nordic NRF52 Bluetooth modules
122- Quectel modems
123- [SYNWIT SWM341](https://www.synwit.cn/)
124
125LVGL também está disponível para:
126- [Arduino library](https://docs.lvgl.io/master/get-started/platforms/arduino.html)
127- [PlatformIO package](https://registry.platformio.org/libraries/lvgl/lvgl)
128- [Zephyr library](https://docs.zephyrproject.org/latest/reference/kconfig/CONFIG_LVGL.html)
129- [ESP32 component](https://docs.lvgl.io/master/get-started/platforms/espressif.html)
130- [NXP MCUXpresso component](https://www.nxp.com/design/software/embedded-software/lvgl-open-source-graphics-library:LITTLEVGL-OPEN-SOURCE-GRAPHICS-LIBRARY)
131- [NuttX library](https://docs.lvgl.io/master/get-started/os/nuttx.html)
132- [RT-Thread RTOS](https://docs.lvgl.io/master/get-started/os/rt-thread.html)
133
134## Iniciando
135Esta lista mostra a maneira recomendada de aprender sobre a biblioteca:
136
1371. Confira as [demos on-line](https://lvgl.io/demos) para ver o LVGL em ação (3 minutos)
1382. Leia a [introdução](https://docs.lvgl.io/master/intro/index.html) da documentação (5 minutos)
1393. Familiarize-se com o básico da [Visão geral rápida](https://docs.lvgl.io/master/get-started/quick-overview.html) (15 minutos)
1404. Configure um [simulador](https://docs.lvgl.io/master/get-started/platforms/pc-simulator.html) (10 minutos)
1415. Experimente alguns [Exemplos](https://github.com/lvgl/lvgl/tree/master/examples)
1426. Placa para porta LVGL. Veja o guia [porting](https://docs.lvgl.io/master/porting/index.html) ou verifique o pronto para usar [Projects](https://github.com/lvgl?q=lv_port_)
1437. Leia a [visão geral](https://docs.lvgl.io/master/overview/index.html) para entender melhor a biblioteca (2-3 horas)
1448. Verifique a documentação dos [widgets](https://docs.lvgl.io/master/widgets/index.html) para ver seus recursos e como utilizá-los
1459. Se você tiver dúvidas, acesse o [fórum](http://forum.lvgl.io/)
14610. Leia o guia de [contribuição](https://docs.lvgl.io/master/CONTRIBUTING.html) para ver como você pode ajudar a melhorar o LVGL (15 minutos)
147
148## Exemplos
149Para mais exemplos, veja a pasta [examples](https://github.com/lvgl/lvgl/tree/master/examples).
150
151![Exemplo de botão LVGL com rótulo (label)](https://github.com/lvgl/lvgl/raw/master/docs/misc/btn_example.png)
152
153### C
154
155```c
156lv_obj_t * button = lv_btn_create(lv_scr_act()); /* Adiciona um botão à tela atual */
157lv_obj_set_pos(button, 10, 10); /* Define uma posição ao botão na tela */
158lv_obj_set_size(button, 100, 50); /* Define o tamanho */
159lv_obj_add_event_cb(button, button_event_callback, LV_EVENT_CLICKED, NULL); /* Atribui um retorno de chamada (callback) */
160
161lv_obj_t * label = lv_label_create(button); /* Adiciona um rótulo (label) */
162lv_label_set_text(label, "Clique aqui"); /* Define o texto do rótulo (label) */
163lv_obj_center(label); /* Alinha o texto ao centro */
164...
165
166void button_event_callback(lv_event_t * e)
167{
168 printf("Clicado\n");
169}
170```
171
172### Micropython
173Saiba mais em [Micropython](https://docs.lvgl.io/master/get-started/bindings/micropython.html)
174
175```python
176def button_event_callback(event):
177 print("Clicado")
178
179# Cria um botão e um rótulo (label)
180button = lv.btn(lv.scr_act())
181button.set_pos(10, 10)
182button.set_size(100, 50)
183button.add_event_cb(button_event_callback, lv.EVENT.CLICKED, None)
184
185label = lv.label(button)
186label.set_text("Cliquq aqui")
187label.center()
188```
189
190## Serviços
191O LVGL Kft foi estabelecido para fornecer uma base sólida para a biblioteca LVGL. Oferecemos vários tipos de serviços
192para ajudá-lo no desenvolvimento da interface do usuário:
193
194- Design gráfico
195- Implementação de IU
196- Consultoria/Suporte
197
198Para mais informações, consulte [LVGL Serviços](https://lvgl.io/services). Sinta-se à vontade para entrar em contato
199conosco se tiver alguma dúvida.
200
201## Contribuindo
202O LVGL é um projeto aberto e sua contribuição é muito bem-vinda. Há muitas maneiras de contribuir, desde simplesmente
203falando sobre seu projeto, escrevendo exemplos, melhorando a documentação, corrigindo bugs até hospedar seu próprio
204projeto sob a organização LVGL.
205
206Para obter uma descrição detalhada das oportunidades de contribuição, visite a seção de [contribuição](https://docs.lvgl.io/master/CONTRIBUTING.html) da documentação.
207
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> ·
16<a href="https://docs.lvgl.io/">文档</a> ·
17<a href="https://forum.lvgl.io">论坛</a> ·
18<a href="https://lvgl.io/services">服务</a> ·
19<a href="https://docs.lvgl.io/master/examples.html">例程</a>
20</h4>
21
22
23[English](./README.md) | **中文** | [Português do Brasil](./README_pt_BR.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、SWM341 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/platforms/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> > 16 MHz</td>
68 <td> > 48 MHz</td>
69 </tr>
70
71 <tr>
72 <td> <strong>Flash/ROM</strong></td>
73 <td> > 64 kB </td>
74 <td> > 180 kB</td>
75 </tr>
76
77 <tr>
78 <td> <strong>Static RAM</strong></td>
79 <td> > 16 kB </td>
80 <td> > 48 kB</td>
81 </tr>
82
83 <tr>
84 <td> <strong>Draw buffer</strong></td>
85 <td> > 1 × <em>hor. res.</em> pixels </td>
86 <td> > 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- [SYNWIT SWM341](https://www.synwit.cn/)
111
112LVGL也支持:
113- [Arduino library](https://docs.lvgl.io/master/get-started/platforms/arduino.html)
114- [PlatformIO package](https://platformio.org/lib/show/12440/lvgl)
115- [Zephyr library](https://docs.zephyrproject.org/latest/reference/kconfig/CONFIG_LVGL.html)
116- [ESP32 component](https://docs.lvgl.io/master/get-started/platforms/espressif.html)
117- [NXP MCUXpresso component](https://www.nxp.com/design/software/embedded-software/lvgl-open-source-graphics-library:LITTLEVGL-OPEN-SOURCE-GRAPHICS-LIBRARY)
118- [NuttX library](https://docs.lvgl.io/master/get-started/os/nuttx.html)
119- [RT-Thread RTOS](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/packages-manual/lvgl-docs/introduction)
120
121
122## 如何入门
123请按照如下顺序来学习LVGL:
1241. 使用[网页在线例程](https://lvgl.io/demos)来体验LVGL(3分钟)
1252. 阅读文档[简介](https://docs.lvgl.io/master/intro/index.html)章节来初步了解LVGL(5分钟)
1263. 再来阅读一下文档快速[快速概览](https://docs.lvgl.io/master/get-started/quick-overview.html)章节来了解LVGL的基本知识(15分钟)
1274. 学习如何使用[模拟器](https://docs.lvgl.io/master/get-started/platforms/pc-simulator.html)来在电脑上仿真LVGL(10分钟)
1285. 试着动手实践一些[例程](https://github.com/lvgl/lvgl/tree/master/examples)
1296. 参考[移植指南](https://docs.lvgl.io/master/porting/index.html)尝试将LVGL移植到一块开发板上,LVGL也已经提供了一些移植好的[工程](https://github.com/lvgl?q=lv_port_)
1307. 仔细阅读文档[总览](https://docs.lvgl.io/master/overview/index.html)章节来更加深入的了解和熟悉LVGL(2-3小时)
1318. 浏览文档[组件(Widgets)](https://docs.lvgl.io/master/widgets/index.html)章节来了解如何使用它们
1329. 如果你有问题可以到LVGL[论坛](http://forum.lvgl.io/)提问
13310. 阅读文档[如何向社区贡献](https://docs.lvgl.io/master/CONTRIBUTING.html)章节来看看你能帮LVGL社区做些什么,以促进LVGL软件质量的不断提高(15分钟)
134
135## 例程
136
137更多例程请参见 [examples](https://github.com/lvgl/lvgl/tree/master/examples) 文件夹。
138
139![LVGL button with label example](https://github.com/lvgl/lvgl/raw/master/docs/misc/btn_example.png)
140
141### C
142```c
143lv_obj_t * btn = lv_btn_create(lv_scr_act()); /*Add a button to the current screen*/
144lv_obj_set_pos(btn, 10, 10); /*Set its position*/
145lv_obj_set_size(btn, 100, 50); /*Set its size*/
146lv_obj_add_event_cb(btn, btn_event_cb, LV_EVENT_CLICKED, NULL); /*Assign a callback to the button*/
147
148lv_obj_t * label = lv_label_create(btn); /*Add a label to the button*/
149lv_label_set_text(label, "Button"); /*Set the labels text*/
150lv_obj_center(label); /*Align the label to the center*/
151...
152
153void btn_event_cb(lv_event_t * e)
154{
155 printf("Clicked\n");
156}
157```
158### Micropython
159更多信息请到 [Micropython官网](https://docs.lvgl.io/master/get-started/bindings/micropython.html) 查询.
160```python
161def btn_event_cb(e):
162 print("Clicked")
163
164# Create a Button and a Label
165btn = lv.btn(lv.scr_act())
166btn.set_pos(10, 10)
167btn.set_size(100, 50)
168btn.add_event_cb(btn_event_cb, lv.EVENT.CLICKED, None)
169
170label = lv.label(btn)
171label.set_text("Button")
172label.center()
173```
174
175## 服务
176LVGL 责任有限公司成立的目的是为了给用户使用LVGL图形库提供额外的技术支持,我们致力于提供以下服务:
177
178- 图形设计
179- UI设计
180- 技术咨询以及技术支持
181
182更多信息请参见 https://lvgl.io/services ,如果有任何问题请随时联系我们。
183
184
185## 如何向社区贡献
186LVGL是一个开源项目,非常欢迎您参与到社区贡献当中。您有很多种方式来为提高LVGL贡献您的一份力量,包括但不限于:
187
188- 介绍你基于LVGL设计的作品或项目
189- 写一些例程
190- 修改以及完善文档
191- 修复bug
192
193请参见文档[如何向社区贡献](https://docs.lvgl.io/master/CONTRIBUTING.html)章节来获取更多信息。
194