**The master branch now contains the test version of v8. For the last v7 version use the release/v7 branch.**
<h1 align="center"> LVGL - Light and Versatile Graphics Library</h1>
<p align="center">
<img src="https://lvgl.io/assets/images/img_1.png">
</p>
<p align="center">
LVGL provides everything you need to create embedded GUI with easy-to-use graphical elements, beautiful visual effects and low memory footprint.
</p>
<h4 align="center">
<a href="https://lvgl.io">Website </a> ·
<a href="https://lvgl.io/demos">Online demo</a> ·
<a href="https://lvgl.github.io/lv_examples/">Nightly demos</a> ·
<a href="https://docs.lvgl.io/">Docs</a> ·
<a href="https://forum.lvgl.io">Forum</a>
</h4>
---
## Features
* Powerful [building blocks](https://docs.lvgl.io/latest/en/html/widgets/index.html): buttons, charts, lists, sliders, images, etc.
* Advanced graphics: animations, anti-aliasing, opacity, smooth scrolling
* Use [various input devices](https://docs.lvgl.io/latest/en/html/overview/indev.html): touchscreen, mouse, keyboard, encoder, buttons, etc.
* Use [multiple displays](https://docs.lvgl.io/latest/en/html/overview/display.html): e.g. monochrome and color display
* Hardware independent to use with any microcontroller or display
* Scalable to operate with little memory (64 kB Flash, 10 kB RAM)
* Multi-language support with UTF-8 handling, Bidirectional and Arabic script support
* Fully customizable graphical elements via [CSS-like styles](https://docs.lvgl.io/latest/en/html/overview/style.html)
* OS, External memory and GPU are supported but not required
* Smooth rendering even with a [single frame buffer](https://docs.lvgl.io/latest/en/html/porting/display.html)
* Written in C for maximal compatibility (C++ compatible)
* Micropython Binding exposes [LVGL API in Micropython](https://blog.lvgl.io/2019-02-20/micropython-bindings)
* [Simulator](https://docs.lvgl.io/latest/en/html/get-started/pc-simulator.html) to develop on PC without embedded hardware
* [Examples](lv_examples) and tutorials for rapid development
* [Documentation](http://docs.lvgl.io/) and API references
## Requirements
Basically, every modern controller (which is able to drive a display) is suitable to run LVGL. The minimal requirements are:
<table>
<tr>
<td> <strong>Name</strong> </td>
<td><strong>Minimal</strong></td>
<td><strong>Recommended</strong></td>
</tr>
<tr>
<td><strong>Architecture</strong></td>
<td colspan="2">16, 32 or 64 bit microcontroller or processor</td>
</tr>
<tr>
<td> <strong>Clock</strong></td>
<td> > 16 MHz </td>
<td> > 48 MHz</td>
</tr>
<tr>
<td> <strong>Flash/ROM</strong></td>
<td> > 64 kB </td>
<td> > 180 kB</td>
</tr>
<tr>
<td> <strong>Static RAM</strong></td>
<td> > 2 kB </td>
<td> > 4 kB</td>
</tr>
<tr>
<td> <strong>Stack</strong></td>
<td> > 2 kB </td>
<td> > 8 kB</td>
</tr>
<tr>
<td> <strong>Heap</strong></td>
<td> > 2 kB </td>
<td> > 8 kB</td>
</tr>
<tr>
<td> <strong>Display buffer</strong></td>
<td> > 1 × <em>hor. res.</em> pixels </td>
<td> > 10 × <em>hor. res.</em> pixels </td>
</tr>
<tr>
<td> <strong>Compiler</strong></td>
<td colspan="2"> C99 or newer </td>
</tr>
</table>
*Note that the memory usage might vary depending on the architecture, compiler and build options.*
Just to mention some platforms:
- STM32F1, STM32F3, STM32F4, STM32F7, STM32L4, STM32L5, STM32H7
- Microchip dsPIC33, PIC24, PIC32MX, PIC32MZ
- NXP: Kinetis, LPC, iMX, iMX RT
- [Linux frame buffer](https://blog.lvgl.io/2018-01-03/linux_fb) (/dev/fb)
- [Raspberry Pi](http://www.vk3erw.com/index.php/16-software/63-raspberry-pi-official-7-touchscreen-and-littlevgl)
- [Espressif ESP32](https://github.com/lvgl/lv_port_esp32)
- [Infineon Aurix](https://github.com/lvgl/lv_port_aurix)
- Nordic NRF52 Bluetooth modules
- Quectel modems
## Get started
This list shows the recommended way of learning the library:
1. Check the [Online demos](https://lvgl.io/demos) to see LVGL in action (3 minutes)
2. Read the [Introduction](https://docs.lvgl.io/latest/en/html/intro/index.html) page of the documentation (5 minutes)
3. Get familiar with the basics on the [Quick overview](https://docs.lvgl.io/latest/en/html/get-started/quick-overview.html) page (15 minutes)
4. Set up a [Simulator](https://docs.lvgl.io/latest/en/html/get-started/pc-simulator.html) (10 minutes)
5. Try out some [Examples](https://github.com/lvgl/lv_examples/)
6. Port LVGL to a board. See the [Porting](https://docs.lvgl.io/latest/en/html/porting/index.html) guide or check the ready to use [Projects](https://github.com/lvgl?q=lv_port_&type=&language=)
7. Read the [Overview](https://docs.lvgl.io/latest/en/html/overview/index.html) page to get a better understanding of the library (2-3 hours)
8. Check the documentation of the [Widgets](https://docs.lvgl.io/latest/en/html/widgets/index.html) to see their features and usage
9. If you have questions go to the [Forum](http://forum.lvgl.io/)
10. Read the [Contributing](https://docs.lvgl.io/latest/en/html/contributing/index.html) guide to see how you can help to improve LVGL (15 minutes)
## Examples
For more examples see the [lv_examples](https://github.com/lvgl/lv_examples) repository.
### Button with label
```c
lv_obj_t * btn = lv_btn_create(lv_scr_act(), NULL); /*Add a button to the current screen*/
lv_obj_set_pos(btn, 10, 10); /*Set its position*/
lv_obj_set_size(btn, 100, 50); /*Set its size*/
lv_obj_set_event_cb(btn, btn_event_cb); /*Assign a callback to the button*/
lv_obj_t * label = lv_label_create(btn, NULL); /*Add a label to the button*/
lv_label_set_text(label, "Button"); /*Set the labels text*/
...
void btn_event_cb(lv_obj_t * btn, lv_event_t event)
{
if(event == LV_EVENT_CLICKED) {
printf("Clicked\n");
}
}
```
![LVGL button with label example](https://raw.githubusercontent.com/lvgl/docs/latest/misc/simple_button_example.gif)
### LVGL from Micropython
Learn more about [Micropython](https://docs.lvgl.io/latest/en/html/get-started/micropython.html).
```python
# Create a Button and a Label
scr = lv.obj()
btn = lv.btn(scr)
btn.align(lv.scr_act(), lv.ALIGN.CENTER, 0, 0)
label = lv.label(btn)
label.set_text("Button")
# Load the screen
lv.scr_load(scr)
```
## Contributing
LVGL 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 hosing your own project under in LVGL.
For a detailed description of contribution opportunities visit the [Contributing](https://docs.lvgl.io/latest/en/html/contributing/index.html) section of the documentation.
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
STM32移植LVGL源码工程
stm32移植GUI-Guider源码
LVGL移植源码 (1354个子文件)
TOUCH.uvguix.23841 90KB
TOUCH.uvguix.87586 179KB
TOUCH.axf 3.67MB
keilkilll.bat 399B
lv_font_simsun_16_cjk.c 1.03MB
lv_font_simsun_60.c 756KB
lv_font_montserrat_48.c 578KB
lv_font_montserrat_46.c 545KB
lv_font_montserrat_44.c 499KB
lv_font_montserrat_42.c 461KB
lv_font_montserrat_40.c 422KB
lv_font_montserrat_38.c 381KB
lv_font_montserrat_36.c 346KB
lv_font_montserrat_34.c 316KB
lv_font_dejavu_16_persian_hebrew.c 281KB
lv_font_montserrat_32.c 278KB
lv_font_montserrat_30.c 255KB
lv_font_montserrat_28.c 228KB
lv_font_montserrat_26.c 202KB
lv_font_montserrat_24.c 177KB
lv_font_montserrat_12_subpx.c 166KB
lv_font_montserrat_22.c 158KB
lv_font_montserrat_28_compressed.c 142KB
lv_font_montserrat_20.c 136KB
lv_font_montserrat_18.c 120KB
stm32f10x_tim.c 107KB
lv_font_montserrat_16.c 101KB
lv_font_montserrat_14.c 87KB
lv_font_montserrat_12.c 74KB
lcd.c 69KB
lv_font_montserrat_10.c 62KB
stm32f10x_flash.c 61KB
lv_chart.c 56KB
lv_font_simsun_12.c 55KB
lv_font_montserrat_8.c 52KB
lv_draw_rect.c 51KB
stm32f10x_rcc.c 50KB
stm32f10x_adc.c 46KB
stm32f10x_i2c.c 45KB
stm32f10x_can.c 44KB
lv_draw_mask.c 43KB
lv_draw_blend.c 42KB
lv_label.c 41KB
lv_indev.c 41KB
lv_theme_default.c 41KB
lv_textarea.c 40KB
stm32f10x_usart.c 37KB
system_stm32f10x.c 36KB
lv_tlsf.c 35KB
lv_btnmatrix.c 35KB
stm32f10x_fsmc.c 35KB
lv_dropdown.c 34KB
lv_canvas.c 33KB
lv_arc.c 32KB
lv_span.c 31KB
lv_draw_label.c 31KB
lv_refr.c 30KB
lv_table.c 30KB
lv_txt.c 30KB
stm32f10x_spi.c 30KB
lv_printf.c 29KB
stm32f10x_dma.c 29KB
stm32f10x_sdio.c 28KB
lv_obj_pos.c 28KB
lv_obj_style.c 28KB
lv_gpu_nxp_vglite.c 27KB
lv_img_buf.c 27KB
lv_roller.c 26KB
lv_obj.c 26KB
lv_indev_scroll.c 25KB
lv_meter.c 25KB
lv_grid.c 24KB
lv_obj_scroll.c 24KB
lv_img_decoder.c 24KB
lv_font_unscii_16.c 24KB
lv_draw_img.c 24KB
stm32f10x_gpio.c 23KB
lv_draw_arc.c 22KB
lv_colorwheel.c 22KB
lv_bidi.c 22KB
lv_obj_style_gen.c 22KB
lv_font_loader.c 21KB
lv_flex.c 20KB
lv_img.c 20KB
lv_bar.c 19KB
stm32f10x_dac.c 19KB
lv_theme_mono.c 18KB
lv_font_fmt_txt.c 18KB
lv_gpu_nxp_pxp.c 17KB
lv_draw_line.c 17KB
core_cm3.c 17KB
lv_style_gen.c 17KB
lv_slider.c 17KB
lv_font_unscii_8.c 16KB
touch.c 15KB
lv_theme_basic.c 14KB
lv_color.c 13KB
lv_obj_draw.c 13KB
lv_mem.c 13KB
lv_spinbox.c 13KB
共 1354 条
- 1
- 2
- 3
- 4
- 5
- 6
- 14
资源评论
嵌入式DZC
- 粉丝: 103
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功