LVGL常用功能备忘

概述

本文选用LVGL 8.3版本

8.3版本实测帧率比起9版本高,多个GUI工具支持

相关链接

LVGL官网 https://lvgl.io/

LVGL 文档 https://docs.lvgl.io/8.3/

LVGL仓库 https://github.com/lvgl

LVGL移植

获取源码

https://github.com/lvgl/lvgl/tree/release/v8.3

下载文件即可

image-20250320150540083

文件解析

需要源码中这几个文件

demos 是示例文件

examples 主要是里面的接口文件

src 是源码文件

两个头文件

image-20250320152325529

文件处理

examples

只留下porting一个文件夹

porting 内文件 _template 后缀去掉

image-20250320153554800

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

lv_conf_template.h去掉 _template

image-20250320154036172

更改后文件

image-20250320154133626

加入文件

将所有src中的c文件加入keil中

我这里分为3个文件组

LVGL_src 存放源码c文件

LVGL_conf存放LVGL设置文件

LVGL_GUI存放自己的GUI文件

image-20250320160736471

脚本加入方法

文件太多了,每个文件夹都要加入比较麻烦

这里使用个python脚本来快速加入

import os

file_lst = []


def print_dir_files(file_path):
    global file_lst
    for file_path, sub_dirs, filenames in os.walk(file_path):
        if filenames:
            # 如果是文件,则加append到list中
            for filename in filenames:
                file_lst.append(os.path.join(file_path, filename))

        for sub_dir in sub_dirs:
            # 如果是目录,则递归调用该函数
            print_dir_files(sub_dir)


if __name__ == '__main__':
    print_dir_files(r"C:\Users\HZ12138\Desktop\LVGL\src")#这里写src文件的绝对目录
    for file_lst_item in file_lst:
        zj = os.path.relpath(file_lst_item, r"C:\Users\HZ12138\Desktop\test")#这里写要相对路径的基位置
        file_name=zj.split("\\")[-1]
        if file_name[-1:]=='c':
            a=r"""
            <File>
              <FileName>"""+file_name+"""</FileName>
              <FileType>1</FileType>
              <FilePath>"""+zj+"""</FilePath>
            </File>
        """
            print(a)

可得到类似这样的内容输出

image-20250320161629077

建议先加入个文件实验下相对路径位置,之后再使用脚本

将MDK文件用文本打开

搜索LVGL_src名称

再文件目录下添加刚才输出的内容即可

image-20250320162522788

image-20250320162628922

image-20250320162640725

配置文件

lvgl.h lvgl_conf.h 还有\examples\porting下的文件加入LVGL_conf

image-20250320163131723

lvgl.h所在目录 src \examples\porting加入头文件目录

image-20250320163720709

image-20250320163558349

Keil设置

打开O3优化和 时间优化 启用c99标准

屏蔽警告(Misc Controls)中加入

--diag_suppress=68,111,188,223,546,1295  --locale=english

image-20250320165606000

Linker 中加入屏蔽警告代码

--diag_suppress=L6314W,L6329W

image-20250320170254851

LVGL模拟器

下载安装

使用VS2022构建LVGL模拟器,VS2022安装请自行解决

模拟器地址

https://github.com/lvgl/lv_port_pc_visual_studio

注意请使用工具从git下克隆指定分支,不要直接下载,直接git克隆会默认最高版本

这里使用 Sourcetree 软件

如下设置,选则版本,选择递归子模块

image-20250320174434444

打开文件运行这个文件即可

image-20250320175040754

image-20250320175105188

更改分辨率

修改 single_display_mode_initialization函数里参数即可

800->长

480->高

image-20250321112336455

LVGL GUI工具

安装

使用 SquareLine Studio 直接从官网下载即可 有免费版本,正常注册即可

https://squareline.io/downloads#lastRelease

建立工程

设置下分辨率 颜色宽度 LVGL版本即可

image-20250321112619508

导出

导出文件

image-20250321112708800

image-20250321112742937

image-20250321112811245

使用

将上述的所有 C H 文件加入

添加ui.h所在的头文件目录

image-20250321112903585

导入ui.h

#include"ui.h"

调用ui_init();即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值