文章目录
前言
准备
官网:LVGL - Light and Versatile Embedded Graphics Libraryhttps://lvgl.io/
官方源码:itHub - lvgl/lvgl: Powerful and easy-to-use embedded GUI library with many widgets, advanced visual effects (opacity, antialiasing, animations) and low memory requirements (16K RAM, 64K Flash).https://github.com/lvgl/lvglGitHub - lvgl/lvgl: Powerful and easy-to-use embedded GUI library with many widgets, advanced visual effects (opacity, antialiasing, animations) and low memory requirements (16K RAM, 64K Flash).目前使用最新版本8.2.0
一、硬件要求
要求 | 最低要求 | 建议要求 |
架构 | 16、32、64位微控制器或微处理器 | |
时钟 | > 16 MHz | > 48 MHz |
Flash/ROM | > 64 kB | > 180 kB |
Static RAM | > 16 kB | > 48 kB |
Draw buffer | > 1 × hor. res. pixels | > 1/10屏幕大小 |
编译器 | C99或更新 |
二、添加源码到工程
1、源码目录
主要一直以上文件或文件夹,将上面的文件和文件夹复制到工程目录
将examples文件夹下的porting移到外面
2、文件改名
lv_conf_template.h改为lv_conf.h
改为
3、给工程添加源文件
1、添加lvgl_src、lvgl_porting两个分组
2、给lvgl_src分组添加源文件src下的所有源文件
a、..\src\core 下所有源码
b、..\src\draw下所有源码,以及sw下所有源码
c、\src\extra下所有源码和layouts、libs、others、themes、widgets下所有源文件
d、..\src\font下所有源码
e、..\src\gpu不用
f、..\src\hal下所有源文件
g、..\src\misc和..\src\widgets 下所有源文件
3、添加porting下的自己所需的源文件,这里只添加 了lv_port_disp,我还添加了lv_conf.h配置文件,方便编辑配置
4、添加头文件路径
1、添加如下三个路径,
2、编译找不到 lv_conf.h 头文件
修改 "../../lv_conf.h" 改为 "lv_conf.h"
也可以通过添加宏定义LV_CONF_INCLUDE_SIMPLE来解决这个问题
编译还是有错,.\Objects\Application.axf: Error: L6218E: Undefined symbol __aeabi_assert (referred from qrcodegen.o).
qrcodegen 中使用了 assert这个断言
断言里面用到了 __aeabi_assert,这个没有定义所以报错了
我们可以在外面定义__aeabi_assert这个函数如下,或者通过添加定义 NDEBUG宏来失效断言
void __aeabi_assert(const char *err, const char *file, int line)
{
/* 输出内容自己定 */
}
编译通过,