LVGL使用GUI Guider配置STM32界面详细笔记教程

news2024/12/22 10:21:35

0、说明

        接着前面几篇博客对LVGL的使用和介绍,这篇博客主要是使用和介绍快速配置LVGL图形界面编程的工具,GUI Guider。本文使用的工程代码,均是基于前几篇博客的基础上的,如需下载已配置好的LVGL-MCU工程环境,可通过如下链接进行跳转下载:

     LVGL移植到STM32 MCU平台详细经验笔记教程_lvgl适配-CSDN博客

   【免费】LVGL移植到STM32MCU平台通用程序源码_lvgl如何port到嵌入式资源-CSDN文库

    LVGL显示中文字体及其它语言文字详细笔记教程_lvgl 安装中文字库-CSDN博客

1、下载GUI Guider工具软件

        GUI Guider是NXP公司为LVGL开发的一个GUI设计工具,用户可以通过直接拖放控件来设计 LVGL的GUI页面,加速 GUI 的设计,并且可以导出与硬件平台无关的c语言、Python代码,非常简单方便的加入到项目中。

GUI Guider | NXP 半导体icon-default.png?t=N7T8https://www.nxp.com.cn/design/design-center/software/development-software/gui-guider:GUI-GUIDER

进入GUI Guider官网,点击下载,选择对应开发平台的工具软件版本,并且安装GUI Guider应用程序。当前在NXP官网下载资料,需要注册账户登录。

2、GUI Guider工程配置

①、新建GUI Guider工程

        当前下载的为Gui-Guider-Setup-1.7.2-GA版本工具,支持LVGL的v7.10.1和v8.3.10两个版本。在本项目中使用的是v8.3版本。

②、选择模拟器作为目标设备

        根据需要进行选择设备,在本笔记教程中选用了模拟器作为设备模板

③、选择工程应用模板

根据需要进行选择,在本笔记教程中选择了空白的UI界面。

④、填写工程信息

        注意:在填写工程路径时,路径名中不能包含任何的空格,否则会报错

⑤、工程创建成功后操作主界面

2、GUI Guider图形界面编辑

①、创建容器

②、插入图片

        在图片插入后,剩余操作可以和上面的创建容器操作类似,设置图片的位置和大小等数据。

③、插入标签(文字)

        如果是显示汉字,需要选择为合适的字体,如思源宋体,如果字体选择不正确,会导致汉字显示异常。

        本教程设置字体为思源宋体,即SourceHanSerifSC_Regular

④、设置字体

        点击系统设置,在选择IDE,然后将默认字体修改为需要的字体,如图所示为修改字体为思源宋体。

⑤、插入线条

⑥、插入表格

        如需增加表格的行数或列数,点击属性内容右侧的加号按钮即可。

⑦、插入复选框

⑧、插入二维码

        选中二维码后,在属性下的文本中,输入文本数据,会自动转换生成对应二维码的图案。

⑨、插入按钮

⑩、事件设置

        在事件设置中,可以自定义事件触发操作代码,也可以直接进行加载屏幕或者其它操作。当是加载屏幕操作时,还可以设置屏幕切换动画。

⑪、代码导出

        在工具软件中的模拟器仿真运行无误后,点击工程-->代码导出,然后选择导出路径,即可将GUI Guider的界面程序代码导出到对应路径,进行使用或移植到其它平台操作。

3、STM32工程移植

①、源文件加入

        打开STM32的工程,新建GUIDER组,将GUI Guider工具导出程序(除了main.c外)全部加入到新建的GUIDER组目录下。

        打开GUI Guider导出的main.c文件,将main.c中的头文件,加入到工程main函数所在的头文件。

#include "../generated/gui_guider.h"
#include "../generated/events_init.h"

        并且MDK工程的main函数上方定义一个全局变量:

lv_ui guider_ui;

        在main函数中调用如下两个函数:

setup_ui(&guider_ui);
events_init(&guider_ui);

②、头文件加入

        将导出的工程中的所有包含.h头文件的路径,全部加入到MDK工程中。

③、解决编译报错

        提醒:因为不同用户,在GUI Guider的操作过程中,使用的对象不同,因此报错信息也并不都是一样的,请根据实际情况进行修改程序,解决编译报错问题。

        通过报错信息,可以看到,主要时报了两个头文件错误和一个程序未定义的错误。

        解决使用二维码未定义报错

        解决头文件报错

④、程序烧录效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1843933.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

docker启动nacos挂载目录并修改配置文件

1 通过 Docker 拉取 nacos 镜像 docker pull nacos/nacos-server:v2.1.22 创建宿主机挂载目录 # 用于挂载 nacos 的日志 mkdir -p /mydata/nacos_home/logs/ # 用于挂载 nacos 的配置 mkdir -p /mydata/nacos_home/conf/ # 用于挂载 nacos 的数据 mkdir -p /mydata/nacos_hom…

接口联调测试工作总结

接口联调测试工作已经告一段落,现在总结如下: 1、首先接口联调测试的价值 2、接口联调要有工作思路 3、接口联调工作准备 4、接口联调测试数据设计 5、接口联调脚本研发 6、脚本联调测试 测试业务本身需要接口联调调用 独立接口正确,但有可能接口…

三甲硅烷基胺(TSA)可用作半导体前驱体材料 南大光电为我国代表企业

三甲硅烷基胺(TSA)可用作半导体前驱体材料 南大光电为我国代表企业 三甲硅烷基胺(TSA)是一种无机化合物,分子式为(SiH3)3N,其外观呈无色流动性液体。三甲硅烷基胺具有易水解、自燃性…

Java面向对象的三大特性之一——继承

目录 一、继承概念 二、为什么要继承 三、继承语法(关键字extends) 四、父类成员访问 1、子类中访问父类的成员变量 (1)子类和父类不存在同名的成员变量 (2)子类和父类中存在同名的成员变量 2、子类中访…

CVPR 2024揭幕,清华大学论文接收量霸榜,轻松碾压斯坦福、麻省理工

CVPR2024 会议之眼 快讯 会议介绍 2024 年 CVPR (Computer Vision and Pattern Recogntion Conference) 即国际计算机视觉与模式识别会议,于6月17日至21日正在美国西雅图召开。CVPR是计算机视觉和模式识别领域的顶级会议之一。与ICCV和ECCV并称为计算…

Vue中使用ElementUI组件Form组件的校验validate

先准备一些el-form元素 这里面el-form中:model(v-bind:model)是单项绑定的,如果你写成了v-model""可能会出现校验没有效果的情况。 这是校验过后的结果了 现在开始使用下吧! 1.在el-form中绑定一个ref,名字自拟,后续触发检验结果…

ASM字节码插桩技术初探

一、ASM简介 ASM(全称:ASMifier Class Visitor)是一个java字节码操纵框架,ASM 提供了许多 API 和工具,可以直接以二进制形式读取和修改类文件、动态生成类或者增强既有类的功能。 1、 ASM 主要作用 asm用于生成、编辑、分析java的class…

仿真模拟--telnet服务两种认证模式(自作)

自己做的笔记,有问题或看不懂请见解一下~ 目录 两个路由器间实现telnet服务(password认证模式) server client 两个路由器间实现telnet服务(aaa认证模式) server client 改名 tab键补齐 不会就扣问号 ? save 两个路由器间实现telnet服务…

【车载开发系列】CAN通信总线再理解(中篇)

【车载开发系列】CAN通信总线再理解(中篇) 九. CAN总线标准十. CAN物理层十一. CAN数据链路层1)CAN的通信帧类型2)CAN的标准帧格式1. CAN ID2. 数据场 3)CAN总线仲裁 十二. CAN应用层1)CANopen2&#xff09…

蚓链数字化营销系统,开启企业无限可能!

蚓链数字化营销系统带给企业的不仅仅是卖货方案,其重要的是让企业具备拥有融合资源的能力、实现在更多业态跨界赚钱的能力、及打造品牌价值的能力。 在当今数字化时代,蚓链数字化营销系统正为企业带来新的变革与机遇。它所赋予企业的,绝非仅仅…

[Vulnhub] Sleepy JDWP+Tomcat+Reverse+Reverse-enginnering

信息收集 Server IP AddressPorts Opening192.168.8.100TCP:21,8009,9001 $ nmap -sV -sC 192.168.8.100 -p- --min-rate 1000 -Pn Starting Nmap 7.92 ( https://nmap.org ) at 2024-06-20 05:06 EDT Nmap scan report for 192.168.8.100 (192.168.8.100) Host is up (0.00…

Python学习打卡:day11

day11 笔记来源于:黑马程序员python教程,8天python从入门到精通,学python看这套就够了 目录 day1183、自定义 Python 包创建包导入包方式1方式2方式3方式4 84、安装第三方包安装第三方包——pippip的网络优化 安装第三方包——PyCharm 85、…

【DKN: Deep Knowledge-Aware Network for News Recommendation】

DKN: Deep Knowledge-Aware Network for News Recommendation 摘要 在线新闻推荐系统旨在解决新闻信息爆炸的问题,为用户进行个性化推荐。 总体而言,新闻语言高度凝练,充满知识实体和常识。 然而,现有的方法并没有意识到这些外部…

Cesium源码解析六(3dtiles属性获取、建筑物距离计算、建筑物着色及其原理分析)

快速导航 Cesium源码解析一(搭建开发环境) Cesium源码解析二(terrain文件的加载、解析与渲染全过程梳理) Cesium源码解析三(metadataAvailability的含义) Cesium源码解析四(metadata元数据拓展…

【因果推断python】46_估计量2

目录 连续型干预变量案例 非线性处理效果 关键思想 连续型干预变量案例 目标转换方法的另一个明显缺点是它仅适用于离散或二元处理。这是你在因果推理文献中经常看到的东西。大多数研究都是针对二元干预案例进行的,但您找不到很多关于连续干预的研究。这让我很困…

Javase.String 类

String 类 【本节目标】1. String类的重要性2. 常用方法2.1 字符串构造2.2 String对象的比较2.3 字符串查找2.4 转化2.5 字符串替换2.7 字符串截取2.8 其他操作方法2.9 字符串的不可变性2.10 字符串修改 3. StringBuilder和StringBuffer3.2 面试题: 4. String类oj4.…

使用虚拟滚动条优化通过el-collapse展示多条数据的性能问题

我们将一个10000条的数据通过el-collapse展示出来,同时在点开每一个item时,要内置一个编辑器,对文本内容进行编辑。其实,如果仅10000条数据的文本的单独展示,可能性能不会太差,但由于每一条都需要带有一个文…

web中间件漏洞-jboss部署war包

web中间件漏洞-jboss部署war包 攻击机服务器准备好的ma.war

FreeBSD在zfs挂接第二块ssd 硬盘

为FreeBSD机器新增加了一块ssd硬盘:骑尘 256G 先格式化分区硬盘 进入bsdconfig 选Disk Management 选择ada1 ,也就是新增加的硬盘 选择auto 然后选择Entire Disk 提示信息 The existing partition scheme on this disk (MBR) │ …

Python数据科学 | 是时候跟Conda说再见了

本文来源公众号“Python数据科学”,仅用于学术分享,侵权删,干货满满。 原文链接:是时候跟Conda说再见了 1 简介 conda作为Python数据科学领域的常用软件,是对Python环境及相关依赖进行管理的经典工具,通…