LVGL可视化设计-Gui Guider

(提示:本篇编辑状态中,完成了70%左右,争取4-8前完成)

一、Gui Guider 概述

  • 免费!免费!免费!
  • 支持 LVGL v7、 v8.3
  • 很方便的:安装、使用  (另一种主流的visual studio模拟,省心程度完全无法相比)
  • 很方便的:界面可视化设计(各种控件已自带多种美化效果供选择)
  • 很方便的:事件添加(注意:先不要在事件里写执行代码,可以用注释行代替)
  • 很方便的:中文显示(选择一下字体即可,完全无需操心转换的问题)
  • 很方便的:代码移植(一两分钟的事) 

二、下载 Gui Guider

1、网址

GUI Guider 下载链接:

http://www.nxp.com.cn/design/software/development-software/gui-guider:GUI-GUIDER

2、选择版本

然后....
你会发现,网页相当卡顿,还需要注册......

如果你有csdn.net积分,可以尝试在csdn.net下载。

下面是最近更新的安装包链接,1积分,双赢 ,你懂~~

Gui Guider v1.7.1 -- csdn下载链接 (更新: 2024-04-07)

Gui Guider v1.7.0 -- csdn下载链接

3、安装

安装过程比较简单。注意:

  • 安装路径不能带有非ASCII码表中的字符,如中文等。
  • 安装路径不宜太深。


三、新建 Gui Guider 工程

1、打开Gui Guider,创建一个新工程

2、选择LVGL版本

2、 选择开发板的模板:模拟器

3、选择应用的模板:空白UI

4、设置工程名称、显示屏参数

5、进入到编辑界面,右上角,可以修改软件的主题

6、还可以选择语言

7、尝试添加控件

8、点击控件栏下方的四方框,能展开全部控件

9、为控件选择更美观的效果

9、运行模拟效果

点击右上角的"绿色三角形",选择“C"作为生成的代码。

然后,会有一个弹窗:

点击确认后,就会开始生成代码,第一次生成的,时间会比较长,大约30秒左右,耐心等待即可。

代码生成完成后,会自动运行效果:

至此,示范工程先完成简单的效果,保存一下。


四、控件事件、响应

这里以按钮的单击事件添加、编写响应代码,作为示例。

1、右击控件 > Add Event

2、选择事件类型

  • 选择:Clicked (单击)

3、事件添加方式 

  • 自定义代码 > 自定义 > C

4、编写代码

5、如何再次编辑事件代码

当上面第4步,点击保存后,想再次编辑本控件的事件代码:

右击控件 > Add Event > 弹出窗口的右侧,点击相关代码尾部的编辑图标,即可再次编辑。

6、如何查看完整的事件代码

运行一次模拟器,刚才编辑的事件代码,才会生成到工程的 c 文件中。

另一种方式,点击模拟器旁边的浅蓝色按钮,生成代码而不运行模拟,能节省不少时间哦!


点击左上角的 "代码编辑" ,可以切换到代码编辑页面。

找到:events_init.c,双击打开:控件的事件代码,都可以在找到、查看。

注意 1:

虽然这个页面叫:“代码编辑”,但是无法在这里进行代码编辑的。

想再次编辑事件代码,必须通过上面 步骤5 的方法。

注意 2:

编写代码时,不要使用这个Guider以外的代码;

如: #include "bsp_UART.h", 或者:LCD_DrapPoint(12, 50, BLACK);

也不要写任何运行代码,如:C = A + B;

这些,都会在重新生成代码时,产生错误。

可以先预留注释替代行,等后面把Guider工程移植到STM32工程后,在Keil里面进行补充。

生成代码后,是这个样子的:


五、移植到STM32工程

1、 打开之前已移植好LVGL的 STM32 工程。

  • 保留LVGL初始化的3行代码;
  • 删除之前的控件测试代码;
  • 编译一次,确保已: 0 Error(s);

2、在STM32工程目录的文件夹 LVGL 里,新建文件夹:apps, 用来存放用户自己的界面文件。

也可以使用自己喜欢的名称。

完成后,LVGL文件夹,是这个样子的:

3、在apps文件夹里,新建文件夹 guiderApp; 当然,也可以使用自己喜欢的名称。

4、打开 Gui Guider工程,把文件夹 custom, 和 generated, 复制到:STM32工程 / LVGL /  apps / guiderApp。

完成后,LVGL / apps / myGuider 文件夹,是这个样子的:

5、进入到 Keil 工程。 新建Ground: myGuider

6、为 myGuider添加文件: 文件类型选择: All files(*.*),  才能显示h文件。

7、添加 LVGL / apps / myGuider 下所有子文件夹的: c和h文件,不包括mk文件。

注意1:一定要添加generated文件夹里那几个子文件夹里面的c、h文件。

注意2:记得点OK,才能保存。直接右上角叉掉窗口,是取消操作,不会保存。

完成后,是这个样子的:

8、添加头文件路径

需要添加三个头文件路径:

  • LVGL / apps / myGuider / custom
  • LVGL / apps / myGuider / generated
  • LVGL / apps / myGuider / generated / guider_customer_fonts

步骤、操作如下:

9、编译一次,如果添加正确:0 Error(s);

如果编译有错,多是头文件路径添加这一步出错了,细心再检查、操作一遍。

10、在main.c中,添加Gui Guider的头文件引用、声明变量

  • #include "gui_guider.h"           // Gui Guider 生成的界面和控件的声明
  • #include "events_init.h"          // Gui Guider 生成的初始化事件、回调函数
  • lv_ui  guider_ui;                     // 用于整个用户界面UI的状态和管理 

完成后,是这个样子的:

11、初始化Gui Guider生成的UI、事件

main.c中,在LVGL的初始化之后,添加:

  • setup_ui(&guider_ui);           // 初始化 Gui Guider 生成的界面
  • events_init(&guider_ui);       // 初始化 Gui Guider 生成的事件

完成后,是这个样子的:

12、编译、烧录

至此,已完成移植、初始化了。

编译吧,如果操作正常,编译后是:0 Error(s).

运行结果如下:


六、编译事件回调函数

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

#pragma once的作用

使用visual studio新建头文件时,第一行会出现如下默认代码, #pragma once 它是一种编译器指令,通常用于确保头文件只被包含一次,以避免产生重复定义的问题。当编译器处理一个源文件时,遇到#pragma once指令时&#xf…

【Python】数据挖掘与机器学习(一)

【Python】数据挖掘与机器学习(一) 大家好 我是寸铁👊 总结了一篇【Python】数据挖掘与机器学习(一)sparkles: 喜欢的小伙伴可以点点关注 💝 【实验1】预测鲍鱼年龄 问题描述 请从一份数据中预测鲍鱼的年龄,数据集在abalone.cvs中&#xff…

SAP-SD VFX3释放销售订单发票报错:科目确定错误

VFX3 报错截图: VF03 - 检查发票信息 VKOA - 科目确定配置 核对是否有配置相应科目 以上~~

c++11 标准模板(STL)本地化库 - 平面类别 - (std::ctype) 定义字符分类表(六)

本地化库 本地环境设施包含字符分类和字符串校对、数值、货币及日期/时间格式化和分析&#xff0c;以及消息取得的国际化支持。本地环境设置控制流 I/O 、正则表达式库和 C 标准库的其他组件的行为。 平面类别 定义字符分类表 std::ctype template< class CharT > clas…

五款开放式蓝牙耳机推荐:这些宝藏耳机,你值得拥有!

如果你是长时间佩戴耳机的用户&#xff0c;那不入耳佩戴的开放式耳机可以让你彻底的“解放双耳”&#xff0c;长时间佩戴也不会觉得耳朵闷、耳朵疼&#xff1b;如果你是运动、健身爱好者&#xff0c;那通透、开放听感的开放式耳机可以提高你在运动时的安全性&#xff0c;让你在…

相位导数方差计算-matlab

%% 下面计算 相位导数方差% 假设 phase_map 是你的相位图二维矩阵 % K 是窗口的大小 k 3; % 请使用实际的窗口大小替换% 计算 x 和 y 方向的偏导 [dx, dy] gradient(wrappedPhase); Ksq k^2; % 计算 K^2half_k floor(k / 2);% 初始化结果矩阵 result zeros(size(wrappedPh…

【刷题篇】回溯算法(一)

文章目录 1、汉诺塔2、合并两个有序链表3、反转链表4、两两交换链表中的节点5、Pow(x, n)6、计算布尔二叉树的值 1、汉诺塔 在经典汉诺塔问题中&#xff0c;有 3 根柱子及 N 个不同大小的穿孔圆盘&#xff0c;盘子可以滑入任意一根柱子。一开始&#xff0c;所有盘子自上而下按升…

PyCharm使用指南(个性化设置、开发必备插件、常用快捷键)

&#x1f947;作者简介&#xff1a;CSDN内容合伙人、新星计划第三季Python赛道Top1 &#x1f525;本文已收录于Python系列专栏&#xff1a; 零基础学Python &#x1f4ac;订阅专栏后可私信博主进入Python学习交流群&#xff0c;进群可领取Python视频教程以及Python相关电子书合…

ubuntu20.04.6将虚拟机用户目录映射为磁盘Z

文章目录 linux虚拟机设置为NAT模式安装sshd服务映射目录到windows磁盘安装samba套件修改配置文件smb.conf重启smbd并设置用户名和密码 windows映射遇到的问题1、设置好之后映射不成功2、smbd下载失败3、smbd密码配置问题4、当有改动时候&#xff0c;最好重启一下smbd服务 linu…

阿里云2核4G服务器多少钱?优惠价格30元、165元和199元1年

阿里云2核4G服务器租用优惠价格&#xff0c;轻量2核4G服务器165元一年、u1服务器2核4G5M带宽199元一年、云服务器e实例30元3个月&#xff0c;活动链接 aliyunfuwuqi.com/go/aliyun 活动链接如下图&#xff1a; 阿里云2核4G服务器优惠价格 轻量应用服务器2核2G4M带宽、60GB高效…

代码随想录阅读笔记-二叉树【二叉搜索树的插入】

题目 给定二叉搜索树&#xff08;BST&#xff09;的根节点和要插入树中的值&#xff0c;将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据保证&#xff0c;新值和原始二叉搜索树中的任意节点值都不同。 注意&#xff0c;可能存在多种有效的插入方式&#xff0c;…

SpringBoot响应式RedisClient配置

大多数场景&#xff0c;默认配置的Redis客户端不满足业务场景&#xff0c;根源在于Redis key、value 序列化反序列化问题。因此&#xff0c;有必要配置自定义的客户端来满足需求。 默认配置源码如下&#xff0c;采用jdk序列化/反序列化方式进行&#xff0c;我们只需要配置相同…

中颖51芯片学习2. IO端口操作

一、SH79F9476 I/O端口介绍 1. 特性 SH79F9476提供了30/26位可编程双向 I/O 端口&#xff1b;端口数据在寄存器Px中&#xff1b;端口控制寄存器PxCRy是控制端口作为输入还是输出&#xff1b;端口作为输入时&#xff0c;每个I/O端口均带有PxPCRy控制的内部上拉电阻。有些I/O引…

软件测试(二)--测试用例

一、什么是用例: 用例就是用户使用案例的简称。以手机用例为例&#xff1a; 1.是否能开机&#xff1a;打开手机按下电源键3秒&#xff0c;看是否能开机。 2.验证内存&#xff1a;打开手机设置查看内存是否为64G. 3.验证屏幕&#xff1a;打开手机在白屏背景下检查屏幕是否有黑点…

【MySQL】数据操作语句(DML)

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前学习计网、mysql和算法 ✈️专栏&#xff1a;MySQL学习 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章对你有帮助的话 欢迎 评论&#x1f4ac…

LeetCode 1017. 负二进制转换

解题思路 相关代码 class Solution {public String baseNeg2(int n) {if(n0) return "0";String s"";while(n!0)if(Math.abs(n)%20){nn/(-2);ss0;}else{ss1; n (n-1)/(-2);}String t reverse(s);return t;}public String reverse(String s){Str…

大广赛车机主体设计实践指南:必备技能速成攻略解读!

车机主体设计是什么 汽车作为代步工具距今已有 130 多年的历史。目前&#xff0c;在视觉范围内如此关注车载 HMI 的历史也只是近十年的事情&#xff0c;因为在过去&#xff0c;人们最注重的还是汽车技术的发展。但随着以交通安全为主的自动驾驶技术的不断发展&#xff0c;智能…

【nginx】使用nginx部署https协议

一、客户有证书提供 客户有证书的&#xff0c;或者有域名申请了免费证书的&#xff0c;直接根据下面的第5步骤&#xff0c;配置nginx即可。 二、 自己生成证书 1. 安装openssl-Win64 OpenSSL v3.1.1 Light 附下载地址 Win32/Win64 OpenSSL Installer for Windows - Shinin…

网站统计中的数据收集原理及实现

网站数据统计分析工具是网站站长和运营人员经常使用的一种工具&#xff0c;比较常用的有谷歌分析、百度统计和腾讯分析等等。所有这些统计分析工具的第一步都是网站访问数据的收集。目前主流的数据收集方式基本都是基于javascript的。本文将简要分析这种数据收集的原理&#xf…

宏集PLC如何为楼宇自动化行业提供空调、供暖与通风的解决方案?

一、应用背景 楼宇自动化行业是通过将先进的技术和系统应用于建筑物中&#xff0c;以提高其运营效率、舒适度和能源利用效率的行业&#xff0c;其目标是使建筑物能够自动监控、调节和控制各种设备和系统&#xff0c;包括照明系统、空调系统、安全系统、通风系统、电力供应系统…