LVGL Manual

LVGL is a highly customizable, modern aesthetically pleasing, easy-to-use, open source free embedded graphics library (MIT protocol), founded by Gábor Kiss-Vámosi from Hungary. Currently, the LVGL source code is hosted on the Github platform for maintenance. Under the promotion of community member Man Jianting , the RT-Thread community and the LVGL community have completed the source code docking. The LVGL official Github source code repository has become a software package for RT-Thread. RT-Thread community partners only need to use the Env tool or RT-Studio to pull the latest source code of LVGL and automatically add it to the RT-Thread project.

List of BSPs that have been adapted to LVGL | Explanation video

Both RT-Thread simulators are compatible with LVGL. You can run the LVGL graphics library on the RT-Thread operating system without a development board. In the adapted BSP, users can complete the LVGL configuration and generate a project with one click. After compiling and downloading, the LVGL routines are automatically demonstrated. Please refer to the documentation or (and) the explanation video for how to configure.

For the transplant template, please refer to Zhengdian Atom STM32L475 Pandora | STM32F469 Discovery | Nuvoton series

There are three LVGL configuration files:

Profile Name

Location

Function

Do users need to modify this file?

lv_conf_internal.h

Sets features not configured by the user to default

unnecessary

lv_rt_thread_conf.h

Take over the configuration related to the operating system (such as time base signal, memory, etc.)

unnecessary

lv_conf.h

RT-Thread side: Reference

User-defined configuration

The user needs to create it in the applications/lvgl folder of the specific BSP

From the table above, we can see that although there are three configuration files, only the last one actually requires user intervention. That is, the user needs to create an lvgl folder in the applications folder of the BSP. This folder is used to store lvgl-related files. The content is as follows:

File name

effect

lv_conf.h

User-defined configuration of LVGL function (the file name cannot be changed randomly)

lv_port_disp.c

LVGL display interface file, void lv_port_disp_init(void)initialize the content related to the interface with the LVGL display framework in the function (this function must exist). Official manual reference | transplant reference

lv_port_indev.c

LVGL input device docking file, void lv_port_indev_init(void)initialize the content related to docking with the LVGL input device framework in the function (this function must exist). Official manual reference | Porting reference

User interface initialization file

Call the function you want to initialize in void lv_user_gui_init(void) the function (the function must exist), and LVGL will automatically call the function during initialization.

Since RT-Thread version 4.1.1 (including 4.1.1), users no longer need to create lv_port_disp.hand lv_port_indev.hfiles.

Users do not need to worry about LVGL initialization. LVGL will be automatically initialized by RT-Thread when the device is powered on. It will also automatically call lv_port_disp_initand lv_port_indev_initto initialize the user's display screen, input device driver and interface drawing function. These initialization tasks have been automatically initialized in the lv_rt_thread_port.clv_user_gui_init file on the LVGL side .

As for whether to connect the RT-Thread display device framework and the touch framework, users can freely deal with it. If you do not want to connect the RT-Thread display and touch framework, you can directly connect the driver to the connection function on the LVGL side .

Last updated

Assoc. Prof. Wiroon Sriborrirux, Founder of Advance Innovation Center (AIC) and Bangsaen Design House (BDH), Electrical Engineering Department, Faculty of Engineering, Burapha University