立创梁山派GD32F450ZGT6--屏幕扩展板LVGL应用

news/2024/10/24 11:45:32/

该文章工程是基于裸机情况下运行的LVGL,通过GUI-Guider-1.4.0进行页面布局配置。

一、介绍

GUI Guider是恩智浦为LVGL开发了一个上位机GUI设计工具,可以通过拖放控件的方式设计LVGL GUI页面,加速GUI的设计。设计完成的GUI页面可以在PC上仿真运行,确认设计完毕之后可以生成C代码,再整合到MCU项目中。

GUI Guider(Version: 1.3.0-GA)的主要特征:

  1. 支持Windows 10和Ubuntu 20.04。

  1. 支持中文、英文。

  1. 兼容LVGL V7和LVGL V8版本。

  1. 支持拖放的所见即所得(WYSIWYG)用户界面设计。

  1. 多种字体支持及第三方字体导入。

  1. 可定制的中文字符范围。

  1. 小部件对齐方式:左、中、右。

  1. 自动产生LVGL 的C语言源代码。

  1. 支持默认样式和自定义样式。

  1. 演示应用程序集成。

  1. 实时日志显示。

  1. 集成上位机仿真器。

注意!!GUI-Guider会依赖javaJDK,因此需要安装jdk.

接线:

二、安装

2.1安装Java-JDK

安装JDK,我使用的JDK见下图(如果你已经安装有JDK,则忽略这里。)

JDK安装我这里就不写了,外面很多大佬关于JDK的安装非常详细。

2.2安装GUI-Guider

下图为安装包。(我的电脑是64位 WIN10)

2.2.1 选择中文(简体)
2.2.2选择同意协议
2.2.3 选择安装路径
2.2.4等待安装完成
2.2.5安装完成

三、创建工程

使用的是立创梁山派的屏幕扩展板,4.3寸,高清的480*800分辨率加5点的电容触摸屏。

详情界面链接:立创·梁山派-屏幕扩展板

3.1选择创建新工程

打开软件后,创建新工程。

3.2选择LVGL版本

这里使用的是V8版本的LVGL。

3.3选择设备模板
3.4选择应用模板

这里选择了一个空白模板,如果感兴趣可以试一试官方的模板。

3.5工程配置

屏幕的像素是480x800,我这里选择的16位彩色,面板尺寸自定义为480x800(竖屏显示)。工程路径请务必放在英文路径

3.6创建完成

创建完成之后,就是这样啦。

四、常用组件的应用

4.1标签

点击标签然后拖拽到我们的显示界面上。

4.1.1标签属性设置

这里主要设置显示的文本内容,和字体。注意:你使用一个字体,它就会生成一个字库给你,所以请慎重考虑内存问题,或者将生成的字库保存至外部FLASH里。

4.2按钮

点击按钮然后拖拽到我们的显示界面上。

4.2.1按钮属性设置
4.2.2按钮事件添加

事件是按钮的灵魂,涉及到我们后继代码如何判断按键是否点击

事件配置里,如果不随便点一个动作,则软件不会生成按钮事件的C代码,所以我选择修改背景色。后面生成代码后再把这个动作的代码删除。

4.3图片

点击图片组件然后拖拽到我们的显示界面上。

4.3.1添加图片资源

点击我们拉出来的图片组件,在属性设置里,添加我们的图片资源。

在弹出的界面选择添加。

这里我选择了一张蓝牙的图标。

添加完成之后,选择这个图片。

这样就显示出来了。注意,每使用一张图片,都会生成C代码,注意内存问题,或保存至外部FLASH。

4.4生成第二个界面

返回之后,点击+号,生成第二个界面。

点击生成的第二个界面,就可以进行编辑了。

4.5图片按钮(界面切换)

这个图片按钮我们用来进行界面跳转。回到界面一,拉出图片按钮。

这里推荐一个图标网站,对大多数的图标都可以免费下载。

网站链接:iconfont-阿里巴巴矢量图标库

我下载了返回图标和前进图标。

将图片加载到我们的图片按钮

设置图片按钮的事件为界面切换事件

去到第二个界面,设置返回键。

在返回键添加界面切换事件,让其可以切换到第一个界面

五、进行模拟并生成代码

点击绿色按键,选择C。开始模拟运行。(会比较慢)

运行效果。视频效果见链接:

六、生成代码并且移植

点击生成代码

去到这个Demo工程目录下,找到生成的代码。

我之前创建工程时的路径

代码就在工程目录的generated和custom文件夹下。将两个文件夹复制到我们的GD32LVGL工程文件夹里。

将我们之前复制的文件夹替换GD32LVGL工程里之前的文件夹。

打开我们替换后的GD32LVGL工程。删除之前生成的代码。

添加我们配置的界面代码。

添加custom文件夹下的.c文件

添加generated文件夹下的.c文件。(界面和配置文件)

添加generated文件夹里的guider_fonts文件夹下的所有.c文件。(字库文件)

添加generated文件夹里的images文件夹下的所有.c文件。(图片资源文件)

最后是这样的。(注意我的字体和图片不一定和你一样,所以不一定是和我添加的文件是完全一样的)

添加完成后,编译。编译完成发现有错误。

错误主要是头文件错误。跳转到错误的地方

将原先错误的地方注释,换成我图片中的样子。

#include "../../lvgl.h"

重新编译,发现还有一个错误。这个错误是在events_init.c文件查找不到guider_ui。

guider_ui是在main.c中定义的一个全局变量,我是定义为ui,所以要将main.c的变量ui,通过extern连接至events_init.c文件。

连接至events_init.c文件后,需要将events_init.c文件里的所有guider_ui替换为ui。

替换操作见下图。

替换完成后,进行编译,没有错误。

七、下载验证

初始界面

按下按钮

界面切换

八、事件代码修改

这里只讲解btn_sw这个按钮的事件。

如果需要按钮按下时灯亮,再按时灯灭的效果,只需在事件中断里,添加即可。

最后注意事项

1、有一些组件的代码是不一样的,需要注意。(我发现时钟就不行)

2、当使用到事件时,需要给事件扫描一个心跳,即多少时间去扫描一次是否有事件发生。

我放在定时器里固定时间扫描一次。

代码百度网盘连接:

链接:https://pan.baidu.com/s/1Px2P43xuQtCciZlBzeJXOQ?pwd=1234

提取码:1234


http://www.ppmy.cn/news/319252.html

相关文章

记公司项目中数字大屏适配4K大屏的问题

记公司项目中数字大屏适配4K大屏的问题 在接手的时候,前端页面已经开发完成,div高度与宽度是百分比,所以适配问题不用考虑宽高问题,但字体边距等没有统一单位,要求适配4k屏 首先4k屏的宽高是3840*2160 有以下几种思…

无线充电宝效果怎么样,无线充电实用性大吗

现在我们一旦要出门,手机肯定是必不可少的工具之一,可以说离开了手机寸步难行。但是随着手机耗电量越来越快,很难有手机的续航能支撑两天,一般情况下,我们使用一天或者大半天就会产生电量焦虑。那么当我们在外出行充电…

充电宝有没有必要买?便携充电宝推荐

充电宝是人们出行必备的小型充电装置,它的出现让人们不必再担心在半路上手机突然没电了。而全球范围内,充电宝品牌是非常多的,充电宝有没有必要买呢呢?我个人觉得还是很有必要的,下面我为大家带来几款便捷的充电宝&…

教您怎么样正确给黑莓手充电

现象: 电池总也充不满,直接表现就是电池总是达不到100%; 一充就满一打就没电,充满的电池用不到2天就没电了,甚至是1天不到就没电了; 、新买的电池用了不到3个月,就出现上述1和2的情况&…

常见开关电源优缺点对比

关注星标公众号,不错过精彩内容 素材来源 | 网络 本文主要讲述常见的开关电源拓扑结构特点和优缺点对比。 常见的拓扑结构,包括Buck降压、Boost升压、Buck-Boost降压-升压、Flyback反激、Forward正激、Two-Transistor Forward双晶体管正激等。 常见的基本…

戴尔电脑OptiPlex7080装机步骤

开机按F2 取消勾选 重启按F12选择第二项U盘启动(UEFI) 进入PE系统,选择磁盘管理,加载镜像。选择自定义安装。

Dell R740服务器 内存报错 MEM8000

MEM8000 Correctable memory error logging disabled for a memory device at location DIMM_XX 1. 确认DIMM 内存状态,清一下日志后观察 2. 将内存重新插拔或者与其他内存替换

Dell PowerEdge T140服务器安装系统笔记

公司买了一台DellDell PowerEdge T140,要安装系统。 首先想安装一个windows server。 首先尝试安装windows server2008.版本比较老,不过手里刚好有这个版本,就试试看。 结果不出意外安装不上。 用了两种方法,第一种用光盘启动…