当前位置: 首页 > news >正文

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();即可

相关文章:

  • STM32基础教程——定时器
  • 天梯赛 L2-013 红色警报
  • 2025海外华文新媒体高级人才研修班在广西南宁举办
  • Java实体类(Javabean)-编程规范
  • 自动学习和优化过程,实现更加精准的预测和决策的智慧交通开源了
  • 神聖的綫性代數速成例題13. 非齊次方程組解的性質、非齊次方程組解的討論
  • python:music21 构建 LSTM+GAN 模型生成爵士风格音乐
  • [笔记] TinyWebServer编译及demo运行过程
  • 什么是PHP伪协议
  • 详细解释计算机系统中的大小端
  • Unity摄像机基本操作详解:移动、旋转与缩放
  • qt实现一个简单http服务器和客户端
  • 前端(vue)学习笔记(CLASS 5):自定义指令插槽路由
  • 熔断降级(Sentinel解决)
  • 在OpenGL ES中将值传入shader的方法总结
  • 一条不太简单的TEX学习之路
  • 论文阅读:Attention is all you need
  • 从PGC到AIGC:海螺AI多模态内容生成系统的技术革命
  • android 音量调节
  • 【第二十八周】:Temporal Segment Networks:用于视频动作识别的时间分段网络
  • 国务院任免国家工作人员:颜清辉任人社部副部长
  • 融创服务全面退出彰泰服务集团:约8.26亿元出售广西彰泰融创智慧80%股权
  • 习近平对辽宁辽阳市白塔区一饭店火灾事故作出重要指示
  • 一季度我国服务进出口总额19741.8亿元,同比增长8.7%
  • 王毅会见俄罗斯外长拉夫罗夫
  • 四川省社科联期刊:不建议在读硕士、博士将导师挂名为第一作者