【快速入门 LVGL】-- 5、Gui Guider界面移植到STM32工程

2024-04-24 08:28

本文主要是介绍【快速入门 LVGL】-- 5、Gui Guider界面移植到STM32工程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

上篇,我们已学习:【快速入门 LVGL】-- 4、显示中文

工程中添加了两个按钮作示范。运行效果如图:

本篇:把Gui Guider设计好的界面,移植到STM32工程。

特别地:

  • 在使用Gui Guider进行界面设计时,应该尽量地完善了设计,再进行移植。
  • 本篇只添加了两个按钮就(匆忙)移植,只是为了示范如何移植。

1、复制一份已移植好LVGL底层的 STM32 工程,作为Gui Guider移植的基础工程。

     在第1篇LVGL学习中,我们已移植好了一个LVGL的STM32工程。

2、在STM32工程的 LVGL 目录下,新建文件夹

  • 在 LVGL 文件夹下,新建文件夹:myGUI。也可以使用自己喜欢的名称。

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

3、复制 Gui Guider 工程文件到 STM32 工程

  • 复制:Gui Guider 工程目录下的两个文件夹: custom、generated;
  • 粘贴到:STM32工程 / LVGL / myGUI 文件夹中;

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

特别地:

  • 在粘贴后,顺手把这两个文件下所有子文件夹的 mk、json文件,都删除,后面更省时间。

 4、打开 STM32 工程

  • 保留:硬件初始化代码、LVGL的3行初始化函数、心跳函数、任务刷新函数;
  • 删除之前测试用的控件代码;

修改后,main是下图这个样子的 (TIM中断回调函数里的心跳函数,在截图范围外了):

点击编译,确认:0 Error; 

如果有错误,先解决了再下一步。

不要嫌麻烦,每操作一个重要步骤,就编译检查一次!

5、新建文件组

  • 新建一个Group:LVGL_myGUI;

6、为 LVGL_myGUI 添加文件

注意:

  • 添加 LVGL / myGUI 目录下:所有 c、h文件;
  • 文件类型选择: All files(*.*),  才能显示h文件;
  • mk、json扩展名的文件,不用添加 (如果在第3步里已删除,这儿操作会很方便);
  • 重点:所有子文件夹里的c、h,都别漏了,如generated文件夹就的子文件夹;
  • 添加完了,点击"OK",保存。

操作过程如下:

完成后,是这个样子的:

7、添加头文件路径

     需要添加三个路径:

  • LVGL /  myGUI / custom
  • LVGL /  myGUI / generated
  • LVGL /  myGUI / generated / guider_customer_fonts

工程资源不同,需要添加的路径不尽相同,如,你的工程可能会有图片资源文件夹等。

如果怕出错:只要是有h文件的目录,你都添加它的路径,就不会产生错误。

步骤、操作如下:

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

  • #include "gui_guider.h"           // Gui Guider 生成的界面和控件的声明
  • #include "events_init.h"          // Gui Guider 生成的初始化事件、回调函数
  • lv_ui  guider_ui;                     // 声明 界面对象

完成后,是这个样子的:

9、添加 UI、事件 的初始化函数

main.c中,在LVGL初始化、TIM6初始化之后,调用界面UI、事件的初始化函数。

  • setup_ui(&guider_ui);           // 初始化 UI
  • events_init(&guider_ui);       // 初始化 事件

完成后,是这个样子的:

10、编译一次

当使用Gui Guider是v1.7.2版本及以上,编译后,是没有错误的。

但是,v1.7.1版本及以下,编译完成后,会有4处错误,如下图:

如何解决:

点击编译信息栏,向上滚动,依次找到:error...."lvgl/lvgl.h"  No such file or directory;

  • 双击错误提示行,将会跳转到产生错误的位置 。
  • 依次把4处路径错误: "lvgl/lvgl.h",  修改为:"lvgl.h"

再次编译:0 Error !

11、烧录

烧录代码至板子,运行结果如下:


这篇关于【快速入门 LVGL】-- 5、Gui Guider界面移植到STM32工程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/931235

相关文章

乐鑫 Matter 技术体验日|快速落地 Matter 产品,引领智能家居生态新发展

随着 Matter 协议的推广和普及,智能家居行业正迎来新的发展机遇,众多厂商纷纷投身于 Matter 产品的研发与验证。然而,开发者普遍面临技术门槛高、认证流程繁琐、生产管理复杂等诸多挑战。  乐鑫信息科技 (688018.SH) 凭借深厚的研发实力与行业洞察力,推出了全面的 Matter 解决方案,包含基于乐鑫 SoC 的 Matter 硬件平台、基于开源 ESP-Matter SDK 的一

C++工程编译链接错误汇总VisualStudio

目录 一些小的知识点 make工具 可以使用windows下的事件查看器崩溃的地方 dumpbin工具查看dll是32位还是64位的 _MSC_VER .cc 和.cpp 【VC++目录中的包含目录】 vs 【C/C++常规中的附加包含目录】——头文件所在目录如何怎么添加,添加了以后搜索头文件就会到这些个路径下搜索了 include<> 和 include"" WinMain 和

C++必修:模版的入门到实践

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:C++学习 贝蒂的主页:Betty’s blog 1. 泛型编程 首先让我们来思考一个问题,如何实现一个交换函数? void swap(int& x, int& y){int tmp = x;x = y;y = tmp;} 相信大家很快就能写出上面这段代码,但是如果要求这个交换函数支持字符型

零基础STM32单片机编程入门(一)初识STM32单片机

文章目录 一.概要二.单片机型号命名规则三.STM32F103系统架构四.STM32F103C8T6单片机启动流程五.STM32F103C8T6单片机主要外设资源六.编程过程中芯片数据手册的作用1.单片机外设资源情况2.STM32单片机内部框图3.STM32单片机管脚图4.STM32单片机每个管脚可配功能5.单片机功耗数据6.FALSH编程时间,擦写次数7.I/O高低电平电压表格8.外设接口

ps基础入门

1.基础      1.1新建文件      1.2创建指定形状      1.4移动工具          1.41移动画布中的任意元素          1.42移动画布          1.43修改画布大小          1.44修改图像大小      1.5框选工具      1.6矩形工具      1.7图层          1.71图层颜色修改          1

C++入门01

1、.h和.cpp 源文件 (.cpp)源文件是C++程序的实际实现代码文件,其中包含了具体的函数和类的定义、实现以及其他相关的代码。主要特点如下:实现代码: 源文件中包含了函数、类的具体实现代码,用于实现程序的功能。编译单元: 源文件通常是一个编译单元,即单独编译的基本单位。每个源文件都会经过编译器的处理,生成对应的目标文件。包含头文件: 源文件可以通过#include指令引入头文件,以使

LVGL快速入门笔记

目录 一、基础知识 1. 基础对象(lv_obj) 2. 基础对象的大小(size) 3. 基础对象的位置(position) 3.1 直接设置方式 3.2 参照父对象对齐 3.3 获取位置 4. 基础对象的盒子模型(border-box) 5. 基础对象的样式(styles) 5.1 样式的状态和部分 5.1.1 对象可以处于以下状态States的组合: 5.1.2 对象

C语言入门系列:探秘二级指针与多级指针的奇妙世界

文章目录 一,指针的回忆杀1,指针的概念2,指针的声明和赋值3,指针的使用3.1 直接给指针变量赋值3.2 通过*运算符读写指针指向的内存3.2.1 读3.2.2 写 二,二级指针详解1,定义2,示例说明3,二级指针与一级指针、普通变量的关系3.1,与一级指针的关系3.2,与普通变量的关系,示例说明 4,二级指针的常见用途5,二级指针扩展到多级指针 小结 C语言的学习之旅中,二级

打造坚固的SSH防护网:端口敲门入门指南

欢迎来到我的博客,代码的世界里,每一行都是一个故事 🎏:你只管努力,剩下的交给时间 🏠 :小破站 打造坚固的SSH防护网:端口敲门入门指南 前言什么是端口敲门端口敲门的优点1. 增强安全性2. 动态防火墙规则3. 隐匿服务4. 改善日志管理5. 灵活性和兼容性6. 低资源消耗7. 防御暴力破解和扫描8. 便于合法用户访问9. 适用于不同类型的服务 端口敲

工程文档CAD转换必备!在 Java 中将 DWG 转换为 JPG

Aspose.CAD 是一个独立的类库,以加强Java应用程序处理和渲染CAD图纸,而不需要AutoCAD或任何其他渲染工作流程。该CAD类库允许将DWG, DWT, DWF, DWFX, IFC, PLT, DGN, OBJ, STL, IGES, CFF2文件、布局和图层高质量地转换为PDF和光栅图像格式。 Aspose API支持流行文件格式处理,并允许将各类文档导出或转换为固定布局文件格