0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用SquareLine Studio进行GUI设计

东软载波微电子 来源:东软载波微电子 作者:东软载波微电子 2022-11-25 11:38 次阅读

工程师笔记 | 使用SquareLine Studio进行GUI设计

图形用户界面,Graphical User Interface,简称 GUI。图形化界面能大幅降低用户使用门槛。

LVGL 是一个免费的开源图形库,可用于创建GUI。LVGL具有:资源占用小、功能强大、文档资料丰富等优点。

RT-Thread是一款国产的嵌入式实时操作系统,支持多线程任务切换、中断管理,支持丰富的功能和软件包。RT-Thread已制作成了LVGL软件包。在RT-Thread bsp的配置中选中该软件包,就能将LVGL移植到工程。

SquareLine Studio 是LVGL官方推出的PC端GUI设计软件。它采用所见即所得的开发方式,降低了GUI设计难度。

本文将要介绍在 ES32 平台上,基于 RT-Thread bsp 和 SquareLine Studio 进行GUI设计的方法。

开启本实验前,读者需要首先了解:

☞本实验基于RT-Thread 4.0.4版本,用户可以从GitHub或Gitee获取:

☆从GitHub下载RT-Thread 4.0.4: https://github.com/RT-Thread/rt-thread/tree/v4.0.4 ☆从Gitee下载RT-Thread 4.0.4: https://gitee.com/rtthread/rt-thread/tree/v4.0.4

☞ 基础的软硬件环境配置和ES-CodeMaker使用方法。详细请查看(点击直接打开):工程师笔记 | ES-CodeMaker for RT-Thread (一)快速上手

☞ ES-CodeMaker for RT-Thread软件最新版本的获取方法,在文本的最后给出。

1.SquareLine Studio

需求:SquareLine Studio,推荐版本:1.1.0

软件获取链接为:https://squareline.io/downloads

作用:辅助GUI开发。

软件安装后快捷方式如下图:

2f8d703c-6c72-11ed-8abf-dac502259ad0.png

打开软件后,如图所示:

2f977cc6-6c72-11ed-8abf-dac502259ad0.png

1.1 新建SquareLine Studio工程

点击中间的Create按钮(蓝色框内)后,如下图所示:

2fb81f26-6c72-11ed-8abf-dac502259ad0.png

在右下方设置工程属性(红色框内)。设置完成后,点击绿色按钮CREATE后,可得新工程。

2fd9b816-6c72-11ed-8abf-dac502259ad0.png

1.2 导入SquareLine Studio工程

在GUI用例中附带了1个SquareLineStudio工程。SquareLineStudio工程使用方法如下:

1 . 前置条件:完成驱动配置(见第3节)。

2 . 点击右下角的IMPORT PROJECT按钮后,选择 SquareLine_Studio工程路径:bspessemisp工程driverspkg_support_exampleguiSquareLine_prj 。如下图所示:

302712fa-6c72-11ed-8abf-dac502259ad0.png

点击按钮打开后,如下图所示:

304ee97e-6c72-11ed-8abf-dac502259ad0.png

4 . 双击已导入的工程后,如下图所示:

305a10ce-6c72-11ed-8abf-dac502259ad0.png

1.3 修改SquareLine Studio工程

在SquareLine Studio中,各区域的功能如下:

30674456-6c72-11ed-8abf-dac502259ad0.png

详细内容请参考官方文档:

https://docs.squareline.io/docs/introduction/overview/

1.4 导出SquareLine Studio工程

修改了SquareLine_Studio工程后,将最新的UI文件导入keil工程的方法如下:

1 . 前置条件:完成驱动配置(见第3节)和RT-Thread配置(见第4节)。

2 . 首先设置选项:SquareLine_Studio的输出文件路径。

点击 File -> Project Settings 后,如下图所示:

3076082e-6c72-11ed-8abf-dac502259ad0.png

输入路径bspessemisp工程driverspkg_support_exampleguiSquareLine_prjexport_files 。如下图所示:

3083a560-6c72-11ed-8abf-dac502259ad0.png

点击按钮APPLY CHANGES后,保存设置。

3 . 如下图所示:点击 Export -> Export UI Files 后,可导出UI文件到指定路径。

30c89620-6c72-11ed-8abf-dac502259ad0.png

4 . 然后参考RT-Thread配置章节,使用scons --target=mdk5构建工程。(将GUI设计软件的更改同步到工程)

5 . 然后参考IDE工程配置章节,修改工程配置。

2.硬件配置

需求:ES32开发板,ES32 GUI 开发套件(ES-PDS-ES32F3696LX-V1.0开发板,ES-PDS-EBI 转接板,3.5寸TFT电容屏模块)。硬件连接如下:

1 . 将 ES-PDS-EBI 转接板插到ES-PDS-ES32F3696LX-V1.0开发板上。

2 . 将3.5寸TFT电容屏模块插到 ES-PDS-EBI转接板上。

3 . 闭合 ES-PDSES32F3696LX开发板上的 JP2、 JP3 和 JP4。

30d431c4-6c72-11ed-8abf-dac502259ad0.png

3.驱动配置

通过CodeMaker可实现可视化的管脚功能配置

新建工程

选择芯片:ES32F3696LX,填写工程名称和路径,选择模板 pkg-example-gui-es-pds:

31033df2-6c72-11ed-8abf-dac502259ad0.png

开启 UART2 功能和对应的管脚作为RT-Thread的控制台功能。

开启 LCD 的管脚: PB0 等26个管脚 (包含:EBI 等接口)。

31134d8c-6c72-11ed-8abf-dac502259ad0.png

硬件部分的配置到这里就完成了,接下来进行系统和驱动相关的配置。

4.RT-Thread配置

接下来配置RT-Thread的内核、组件、软件包和驱动,以下以Keil+ENV配置为例说明如何进行配置。

1 . 在bsp的根目录打开ENV工具

2 . 输入menuconfig配置工程

rt-thread 内核配置

RT-Thread Kernel设置系统的 tick。将tick频率调整到1000。如果tick < 1000,LVGL的任务处理频率可能会降低。

313ef482-6c72-11ed-8abf-dac502259ad0.png

RT-Thread Kernel -> Kernel Device Object 进行内核设备对象设置。将控制台的设备名改为“uart2”。

314cf74e-6c72-11ed-8abf-dac502259ad0.png

rt-thread 组件配置

RT-Thread Components -> Device Drivers进行设备驱动设置。勾选选项Using Touch device drivers开启rt-thread touch框架。勾选选项touch irq use pin irq开启功能:用管脚中断触发Touch设备中断。

317304ac-6c72-11ed-8abf-dac502259ad0.png

rt-thread 软件包 LVGL配置

RT-Thread online packages → multimedia packages → LVGL: powerful and easy-to-use embedded GUI library开启LVGL 软件包。LVGL具有易于使用的图形元素、优美的视觉效果和较低的内存占用。

31f5980e-6c72-11ed-8abf-dac502259ad0.png

RT-Thread online packages → multimedia packages → LVGL: powerful and easy-to-use embedded GUI library → LVGL (official): powerful and easy-to-use embedded GUI library打开LVGL的配置选项。配置LVGL线程的栈大小和优先级等。

32237eea-6c72-11ed-8abf-dac502259ad0.png

UART 配置

Hardware Drivers Config -> On-chip Peripheral Drivers -> UART Drivers 开启uart2。(与控制台通信

324ef26e-6c72-11ed-8abf-dac502259ad0.png

开启GUI样例程序

Hardware Drivers Config -> Pkgs Support Example -> GUI -> GUI_BOARD_ES_PDS开启GUI用例程序。

32974cf8-6c72-11ed-8abf-dac502259ad0.png

3 . 输入pkgs --update命令更新软件包。

4 . 输入scons --target=mdk5命令生成keil5工程。(使用IAR等其他平台指定--target=xxx即可)

5 . 使用Keil5打开工程,编译并下载。

5.IDE工程配置

因为GUI中会显示中文字体。

以Keil5为例,增加工程控制: --no-multibyte-chars

32f64140-6c72-11ed-8abf-dac502259ad0.png

6.实验说明

1 . SquareLine Studio 输出的文件说明如下:

文件 说明
ui.c + ui.h 界面初始化及事件接口
ui_events.c 需要自己实现的函数调用
ui_helper.c + ui_helper.h SquareLine Studio实现的事件处理
ui_font_*.c SquareLine Studio生成的字体文件
ui_img_*.c SquareLine Studio生成的图片文件

2 . LVGL配置文件

在RT-Thread的LVGL软件包中,不包含LVGL配置文件 lv_conf.h 。只包含LVGL配置模板 lv_conf_template.h 。LVGL配置模板路径为:bspessemisp工程packagesLVGL软件包lv_conf_template.h 。

在GUI用例中,LVGL配置文件的路径为:

bspessemisp工程driverspkg_support_exampleguioard_es-pdses_port_for_lvgl_v8lv_conf.h

3 . 程序流程

初始化系统和驱动。

初始化LVGL。

调用GUI设计软件生成的代码。

7.实验现象

编译程序并下载后,控制台的具体现象如下图所示:

33253a68-6c72-11ed-8abf-dac502259ad0.png

与GUI设计软件(SquareLine Studio)的效果一致。LCD屏显示效果如下图:

333b4114-6c72-11ed-8abf-dac502259ad0.gif

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • GUI
    GUI
    +关注

    关注

    3

    文章

    610

    浏览量

    38786
  • RT-Thread
    +关注

    关注

    31

    文章

    1148

    浏览量

    38863

原文标题:工程师笔记 | 使用SquareLine Studio进行GUI设计

文章出处:【微信号:东软载波微电子,微信公众号:东软载波微电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    STemWin中GUI_NUM_LAYERS是如何进行宏定义的,其依据是什么?

    STemWin中GUI_NUM_LAYERS 这个层数指什么,是如何进行宏定义的,其依据是什么?
    发表于 04-19 06:21

    分享几个嵌入式中常用的GUI

    一、什么是GUIGUI是图形用户界面(GraphicalUserInterface,简称GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。通过GUI框架,用户可直接
    的头像 发表于 04-06 08:09 152次阅读
    分享几个嵌入式中常用的<b class='flag-5'>GUI</b>

    『嵌入式GUI特训营』开营啦!是学霸就有奖拿,快来挑战一下!

    “同是嵌入式GUI设计 为什么别人做起来 轻松、快捷,很炫酷 而我的设计却 费力、耗时,有点low…“ 不要焦虑! 加入恩智浦 “ 嵌入式GUI特训营 ” 让你的GUI技能分分钟与高手比肩
    的头像 发表于 12-01 09:15 198次阅读
    『嵌入式<b class='flag-5'>GUI</b>特训营』开营啦!是学霸就有奖拿,快来挑战一下!

    python如何打开gui界面

    在Python中打开GUI界面,可以使用多种库或框架,如Tkinter、PyQt、wxPython等。下面将详细介绍如何使用Tkinter创建一个GUI界面。在写文章时,建议参考以下提纲,将文章分成
    的头像 发表于 11-22 14:12 443次阅读

    STM32GUI_使用 STLINK+stm32gui-pydfb 工具来实时查看图形缓存的图片

    STM32GUI_使用 STLINK+stm32gui-pydfb 工具来实时查看图形缓存的图片
    的头像 发表于 10-27 10:28 527次阅读
    STM32<b class='flag-5'>GUI</b>_使用 STLINK+stm32<b class='flag-5'>gui</b>-pydfb 工具来实时查看图形缓存的图片

    基于MCU通用GUI大盘点

    基于MCU通用GUI大盘点
    的头像 发表于 10-18 17:07 553次阅读
    基于MCU通用<b class='flag-5'>GUI</b>大盘点

    使用GUI Guider工具开发嵌入式GUI应用(3)

    本节讲述在GUI Guider中,应用各种UI的基本元素,并顺利部署到MCU的过程。在GUI Guider中使用各LVGL的组件时,将会涉及到GUI Guider的操作,以及将某些组件额外生成的源码添加到Keil工程中。
    的头像 发表于 08-16 14:39 1521次阅读
    使用<b class='flag-5'>GUI</b> Guider工具开发嵌入式<b class='flag-5'>GUI</b>应用(3)

    使用GUI Guider工具开发嵌入式GUI应用(2)

    GUI Guider本质上是一个方便嵌入式开发者基于LVGL开发GUI应用的源码生成器工具,其作用是帮助开发者生成LVGL的应用源码,GUI Guider最终生成的源码将要被部署到具体的嵌入式硬件平台上才能发挥作用
    的头像 发表于 08-16 14:36 2137次阅读
    使用<b class='flag-5'>GUI</b> Guider工具开发嵌入式<b class='flag-5'>GUI</b>应用(2)

    在e² studio中安装QE的流程介绍

    和组件,包括编译器、调试器、模拟器、代码生成器等,可以快速构建和优化MCU的应用程序。同时,e 2 studio也提供了一套易于使用且功能强大的图形用户界面(GUI),方便用户进行MCU的配置和编程,另外还支持多种不同的编程语言
    的头像 发表于 08-16 12:10 566次阅读

    使用RT-Thread Studio进行智能家居终端的设计

    本次方案基于星火一号开发板开发,使用RT-Thread Studio进行工程创建,代码编辑,RT-Thread配置,调试配置,程序下载等功能。
    的头像 发表于 07-28 16:41 1364次阅读
    使用RT-Thread <b class='flag-5'>Studio</b><b class='flag-5'>进行</b>智能家居终端的设计

    FemtoClock®2GUI 用户指南

    FemtoClock®2 GUI 用户指南
    发表于 07-04 18:55 0次下载
    FemtoClock®2<b class='flag-5'>GUI</b> 用户指南

    VersaClock 7 的 RICBox GUI 软件手册

    VersaClock 7 的 RICBox GUI 软件手册
    发表于 06-30 19:46 0次下载
    VersaClock 7 的 RICBox <b class='flag-5'>GUI</b> 软件手册

    GUI系列课程上新 | STM32 GUI开发技能分享

    ▲   点击上方 关注 STM32   步履不停,进阶不止,STM32 GUI开发系列课程新课上线啦! 本次上线的新课《STM32 GUI开发技能分享》,是《STM32
    的头像 发表于 06-03 08:30 835次阅读
    <b class='flag-5'>GUI</b>系列课程上新 | STM32 <b class='flag-5'>GUI</b>开发技能分享

    Android Studio引入AI编程助手Studio Bot

    谷歌在昨晚的 Google I/O 2023 大会上发布了用于 Android Studio 的 AI 编程助手 Studio Bot—— 支持生成代码和修复错误。Studio Bot 目前处于预览阶段,已集成到 Android
    的头像 发表于 05-12 14:53 1242次阅读
    Android <b class='flag-5'>Studio</b>引入AI编程助手<b class='flag-5'>Studio</b> Bot

    java上位机开发(GUI设计)

    对于上位机来说,GUI设计是很重要的一个环节。如果没有GUI,那就成了命令行工具了。对于java来说,图形库主要有 swing和awt两种,选择哪一种可以根据个人的喜好进行选择,差别不大。另外
    发表于 05-08 10:41 0次下载
    java上位机开发(<b class='flag-5'>GUI</b>设计)