1
0
mirror of https://github.com/lvgl/lvgl.git synced 2025-01-14 06:42:58 +08:00
Gabor Kiss-Vamosi 8283fcc2d7
Update README.md
2019-01-29 14:10:41 +01:00
2018-10-28 23:18:22 +01:00
2019-01-04 12:13:33 +01:00
2019-01-02 15:18:02 +01:00
2018-12-11 10:21:22 +01:00
2017-11-28 16:15:42 +01:00
2016-06-08 07:25:08 +02:00
2018-12-01 17:48:30 +08:00
2018-11-15 00:30:42 +01:00
2019-01-29 14:10:41 +01:00

Littlev Graphics Library   Tweet

price status licence version

LittlevGL cover

LittlevGL provides everything you need to create a Graphical User Interface (GUI) on embedded systems with easy-to-use graphical elements, beautiful visual effects and low memory footprint.

Website · Live demo · Simulator · Docs · Blog

Star the project if you like it!

Features

  • Powerful building blocks buttons, charts, lists, sliders, images, etc.
  • Advanced graphics with animations, anti-aliasing, opacity, smooth scrolling
  • Various input devices touch pad, mouse, keyboard, encoder, buttons, etc.
  • Multi-language support with UTF-8 encoding
  • Fully customizable graphical elements
  • Hardware independent to use with any microcontroller or display
  • Scalable to operate with little memory (50 kB Flash, 10 kB RAM)
  • OS, External memory and GPU supported but not required
  • Single frame buffer operation even with advances graphical effects
  • Written in C for maximal compatibility
  • Simulator to develop on PC without embedded hardware
  • Tutorials, examples, themes for rapid development
  • Documentation and API references online

Porting

In the simplest case you need 5 things:

  1. Call lv_tick_inc(x) every x milliseconds in a Timer or Task (x should be between 1 and 10)
  2. Register a function which can copy a pixel array to an area of the screen.
  3. Register a function which can read an input device. (E.g. touch pad)
  4. Copy lv_conf_templ.h as lv_conf.h and set at least LV_HOR_RES, LV_VER_RES and LV_COLOR_DEPTH.
  5. Call lv_task_handler() periodically every few milliseconds. For a detailed description visit https://docs.littlevgl.com/#Porting Or check the Porting tutorial

Project set-up

  1. Clone or Download the lvgl repository: git clone https://github.com/littlevgl/lvgl.git
  2. Create project with your preferred IDE and add the lvgl folder
  3. Copy lvgl/lv_conf_templ.h as lv_conf.h next to the lvgl folder
  4. In the lv_conf.h delete the first #if 0 and its #endif. Leave the default configuration for the first try.
  5. In your main.c: #include "lvgl/lvgl.h"
  6. In your main function:
    • lvgl_init();
    • tick, display and input device initialization (see above)
  7. To test create a label: lv_obj_t * label = lv_label_create(lv_scr_act(), NULL);
  8. In the main while(1) call lv_task_handler(); and make a few milliseconds delay (e.g. my_delay_ms(5);)
  9. Compile the code and load it to your embedded hardware

PC Simulator

You can test the graphics library in a PC simulator, if you don't have an embedded hardware. The simulator uses SDL2 library to emulate a display on your monitor and a touch pad with your mouse.

There is a pre-configured PC project for Eclipse CDT in this repository: https://github.com/littlevgl/pc_simulator

Contributing

See CONTRIBUTING.md

Donate

If you are pleased with this graphics library, found it useful, or are happy with the support you got, please help its further development:

Donate

Languages
C 90.2%
C++ 8.2%
Python 1.1%
Assembly 0.2%
CMake 0.1%