0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用SquareLine Studio進(jìn)行GUI設(shè)計(jì)

東軟載波微電子 ? 來源:東軟載波微電子 ? 作者:東軟載波微電子 ? 2022-11-25 11:38 ? 次閱讀

工程師筆記 | 使用SquareLine Studio進(jìn)行GUI設(shè)計(jì)

圖形用戶界面,Graphical User Interface,簡稱 GUI。圖形化界面能大幅降低用戶使用門檻。

LVGL 是一個(gè)免費(fèi)的開源圖形庫,可用于創(chuàng)建GUI。LVGL具有:資源占用小、功能強(qiáng)大、文檔資料豐富等優(yōu)點(diǎn)。

RT-Thread是一款國產(chǎn)的嵌入式實(shí)時(shí)操作系統(tǒng),支持多線程任務(wù)切換、中斷管理,支持豐富的功能和軟件包。RT-Thread已制作成了LVGL軟件包。在RT-Thread bsp的配置中選中該軟件包,就能將LVGL移植到工程。

SquareLine Studio 是LVGL官方推出的PC端GUI設(shè)計(jì)軟件。它采用所見即所得的開發(fā)方式,降低了GUI設(shè)計(jì)難度。

本文將要介紹在 ES32 平臺(tái)上,基于 RT-Thread bsp 和 SquareLine Studio 進(jìn)行GUI設(shè)計(jì)的方法。

開啟本實(shí)驗(yàn)前,讀者需要首先了解:

?本實(shí)驗(yàn)基于RT-Thread 4.0.4版本,用戶可以從GitHub或Gitee獲?。?/p>

☆從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

? 基礎(chǔ)的軟硬件環(huán)境配置和ES-CodeMaker使用方法。詳細(xì)請(qǐng)查看(點(diǎn)擊直接打開):工程師筆記 | ES-CodeMaker for RT-Thread (一)快速上手

? ES-CodeMaker for RT-Thread軟件最新版本的獲取方法,在文本的最后給出。

1.SquareLine Studio

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

軟件獲取鏈接為:https://squareline.io/downloads

作用:輔助GUI開發(fā)。

軟件安裝后快捷方式如下圖:

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

打開軟件后,如圖所示:

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

1.1 新建SquareLine Studio工程

點(diǎn)擊中間的Create按鈕(藍(lán)色框內(nèi))后,如下圖所示:

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

在右下方設(shè)置工程屬性(紅色框內(nèi))。設(shè)置完成后,點(diǎn)擊綠色按鈕CREATE后,可得新工程。

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

1.2 導(dǎo)入SquareLine Studio工程

在GUI用例中附帶了1個(gè)SquareLineStudio工程。SquareLineStudio工程使用方法如下:

1 . 前置條件:完成驅(qū)動(dòng)配置(見第3節(jié))。

2 . 點(diǎn)擊右下角的IMPORT PROJECT按鈕后,選擇 SquareLine_Studio工程路徑:bspessemisp工程driverspkg_support_exampleguiSquareLine_prj 。如下圖所示:

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

點(diǎn)擊按鈕打開后,如下圖所示:

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

4 . 雙擊已導(dǎo)入的工程后,如下圖所示:

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

1.3 修改SquareLine Studio工程

在SquareLine Studio中,各區(qū)域的功能如下:

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

詳細(xì)內(nèi)容請(qǐng)參考官方文檔:

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

1.4 導(dǎo)出SquareLine Studio工程

修改了SquareLine_Studio工程后,將最新的UI文件導(dǎo)入keil工程的方法如下:

1 . 前置條件:完成驅(qū)動(dòng)配置(見第3節(jié))和RT-Thread配置(見第4節(jié))。

2 . 首先設(shè)置選項(xiàng):SquareLine_Studio的輸出文件路徑。

點(diǎn)擊 File -> Project Settings 后,如下圖所示:

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

輸入路徑bspessemisp工程driverspkg_support_exampleguiSquareLine_prjexport_files 。如下圖所示:

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

點(diǎn)擊按鈕APPLY CHANGES后,保存設(shè)置。

3 . 如下圖所示:點(diǎn)擊 Export -> Export UI Files 后,可導(dǎo)出UI文件到指定路徑。

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

4 . 然后參考RT-Thread配置章節(jié),使用scons --target=mdk5構(gòu)建工程。(將GUI設(shè)計(jì)軟件的更改同步到工程)

5 . 然后參考IDE工程配置章節(jié),修改工程配置。

2.硬件配置

需求:ES32開發(fā)板,ES32 GUI 開發(fā)套件(ES-PDS-ES32F3696LX-V1.0開發(fā)板,ES-PDS-EBI 轉(zhuǎn)接板,3.5寸TFT電容屏模塊)。硬件連接如下:

1 . 將 ES-PDS-EBI 轉(zhuǎn)接板插到ES-PDS-ES32F3696LX-V1.0開發(fā)板上。

2 . 將3.5寸TFT電容屏模塊插到 ES-PDS-EBI轉(zhuǎn)接板上。

3 . 閉合 ES-PDSES32F3696LX開發(fā)板上的 JP2、 JP3 和 JP4。

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

3.驅(qū)動(dòng)配置

通過CodeMaker可實(shí)現(xiàn)可視化的管腳功能配置

新建工程

選擇芯片:ES32F3696LX,填寫工程名稱和路徑,選擇模板 pkg-example-gui-es-pds:

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

開啟 UART2 功能和對(duì)應(yīng)的管腳作為RT-Thread的控制臺(tái)功能。

開啟 LCD 的管腳: PB0 等26個(gè)管腳 (包含:EBI 等接口)。

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

硬件部分的配置到這里就完成了,接下來進(jìn)行系統(tǒng)和驅(qū)動(dòng)相關(guān)的配置。

4.RT-Thread配置

接下來配置RT-Thread的內(nèi)核、組件、軟件包和驅(qū)動(dòng),以下以Keil+ENV配置為例說明如何進(jìn)行配置。

1 . 在bsp的根目錄打開ENV工具

2 . 輸入menuconfig配置工程

rt-thread 內(nèi)核配置

RT-Thread Kernel設(shè)置系統(tǒng)的 tick。將tick頻率調(diào)整到1000。如果tick < 1000,LVGL的任務(wù)處理頻率可能會(huì)降低。

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

RT-Thread Kernel -> Kernel Device Object 進(jìn)行內(nèi)核設(shè)備對(duì)象設(shè)置。將控制臺(tái)的設(shè)備名改為“uart2”。

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

rt-thread 組件配置

RT-Thread Components -> Device Drivers進(jìn)行設(shè)備驅(qū)動(dòng)設(shè)置。勾選選項(xiàng)Using Touch device drivers開啟rt-thread touch框架。勾選選項(xiàng)touch irq use pin irq開啟功能:用管腳中斷觸發(fā)Touch設(shè)備中斷。

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具有易于使用的圖形元素、優(yōu)美的視覺效果和較低的內(nèi)存占用。

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的配置選項(xiàng)。配置LVGL線程的棧大小和優(yōu)先級(jí)等。

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

UART 配置

Hardware Drivers Config -> On-chip Peripheral Drivers -> UART Drivers 開啟uart2。(與控制臺(tái)通信

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等其他平臺(tái)指定--target=xxx即可)

5 . 使用Keil5打開工程,編譯并下載。

5.IDE工程配置

因?yàn)镚UI中會(huì)顯示中文字體。

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

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

6.實(shí)驗(yàn)說明

1 . SquareLine Studio 輸出的文件說明如下:

文件 說明
ui.c + ui.h 界面初始化及事件接口
ui_events.c 需要自己實(shí)現(xiàn)的函數(shù)調(diào)用
ui_helper.c + ui_helper.h SquareLine Studio實(shí)現(xiàn)的事件處理
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 . 程序流程

初始化系統(tǒng)和驅(qū)動(dòng)。

初始化LVGL。

調(diào)用GUI設(shè)計(jì)軟件生成的代碼。

7.實(shí)驗(yàn)現(xiàn)象

編譯程序并下載后,控制臺(tái)的具體現(xiàn)象如下圖所示:

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

與GUI設(shè)計(jì)軟件(SquareLine Studio)的效果一致。LCD屏顯示效果如下圖:

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

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • GUI
    GUI
    +關(guān)注

    關(guān)注

    3

    文章

    631

    瀏覽量

    39319
  • RT-Thread
    +關(guān)注

    關(guān)注

    31

    文章

    1240

    瀏覽量

    39488

原文標(biāo)題:工程師筆記 | 使用SquareLine Studio進(jìn)行GUI設(shè)計(jì)

文章出處:【微信號(hào):東軟載波微電子,微信公眾號(hào):東軟載波微電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    使用TI Edge AI Studio和AM62A進(jìn)行基于視覺AI的缺陷檢測

    電子發(fā)燒友網(wǎng)站提供《使用TI Edge AI Studio和AM62A進(jìn)行基于視覺AI的缺陷檢測.pdf》資料免費(fèi)下載
    發(fā)表于 09-03 10:38 ?0次下載
    使用TI Edge AI <b class='flag-5'>Studio</b>和AM62A<b class='flag-5'>進(jìn)行</b>基于視覺AI的缺陷檢測

    七大嵌入式GUI盤點(diǎn)

    嵌入式圖形用戶界面(GUI)是一種為嵌入式系統(tǒng)設(shè)計(jì)的用戶界面,它可以讓用戶通過圖形化的方式與設(shè)備進(jìn)行交互。以下是對(duì)七種嵌入式 GUI 的盤點(diǎn)。 emWin 由德國SEGGER公司開發(fā),可為圖形
    發(fā)表于 09-02 10:58

    樹莓派gui開發(fā)用什么ide

    樹莓派(Raspberry Pi)是一款功能強(qiáng)大的微型計(jì)算機(jī),可以運(yùn)行多種操作系統(tǒng),如Raspbian、Ubuntu等。在樹莓派上進(jìn)行GUI(圖形用戶界面)開發(fā),可以使用多種集成開發(fā)環(huán)境(IDE
    的頭像 發(fā)表于 08-30 16:49 ?332次閱讀

    如何使用e2studio對(duì)瑞薩單片機(jī)進(jìn)行GPIO輸出

    本篇文章主要介紹如何使用e2studio對(duì)瑞薩單片機(jī)進(jìn)行GPIO輸出,并以LED顯示。
    的頭像 發(fā)表于 07-30 16:12 ?393次閱讀
    如何使用e2<b class='flag-5'>studio</b>對(duì)瑞薩單片機(jī)<b class='flag-5'>進(jìn)行</b>GPIO輸出

    squareline lvgl(8.3.6)移植esp32 s3 lcd ev-board2出現(xiàn)錯(cuò)位是怎么回事?

    1.如標(biāo)題所示,在squareline 1.4中基于esp32 s3 lcd-ev-board2 設(shè)計(jì)頁面如下圖1-1所示(download/file.php?mode=view&
    發(fā)表于 06-28 09:18

    STM32CubeMx使用GUI_DrawGradientH GUI_DrawGradientV繪制一直顯示黑色,是哪里出錯(cuò)?

    使用STM32CubeMx配置 LTDC + DMA2D + FMC + GRAPHICS STemWin(開啟CRC),直接使用STM32CubeMx生成代碼,未進(jìn)行手動(dòng)修改。 問題: 1
    發(fā)表于 04-26 06:38

    STemWin中GUI_NUM_LAYERS是如何進(jìn)行宏定義的,其依據(jù)是什么?

    STemWin中GUI_NUM_LAYERS 這個(gè)層數(shù)指什么,是如何進(jìn)行宏定義的,其依據(jù)是什么?
    發(fā)表于 04-19 06:21

    分享幾個(gè)嵌入式中常用的GUI

    一、什么是GUI?GUI是圖形用戶界面(GraphicalUserInterface,簡稱GUI,又稱圖形用戶接口)是指采用圖形方式顯示的計(jì)算機(jī)操作用戶界面。通過GUI框架,用戶可直接
    的頭像 發(fā)表于 04-06 08:09 ?1197次閱讀
    分享幾個(gè)嵌入式中常用的<b class='flag-5'>GUI</b>

    GUI Guider新版本發(fā)布,嵌入式GUI開發(fā)體驗(yàn)升級(jí)

    作為恩智浦著力打造的一款嵌入式人機(jī)交互應(yīng)用開發(fā)工具,GUI Guider又迎來了一個(gè)新版本!最新發(fā)布的GUI Guider v1.7.1增加了視頻轉(zhuǎn)換功能,可以幫助用戶靈活地轉(zhuǎn)換原視頻,包括長度裁剪
    發(fā)表于 03-29 09:47 ?1355次閱讀
    <b class='flag-5'>GUI</b> Guider新版本發(fā)布,嵌入式<b class='flag-5'>GUI</b>開發(fā)體驗(yàn)升級(jí)

    e2 studio創(chuàng)建lib文件及使用

    e2 studio創(chuàng)建lib文件及使用
    的頭像 發(fā)表于 01-18 08:06 ?283次閱讀
    e2 <b class='flag-5'>studio</b>創(chuàng)建lib文件及使用

    python如何打開gui界面

    在Python中打開GUI界面,可以使用多種庫或框架,如Tkinter、PyQt、wxPython等。下面將詳細(xì)介紹如何使用Tkinter創(chuàng)建一個(gè)GUI界面。在寫文章時(shí),建議參考以下提綱,將文章分成
    的頭像 發(fā)表于 11-22 14:12 ?814次閱讀

    LVGL結(jié)合RT-thread快速開發(fā)出漂亮GUI的利器GUI-Guider

    GUI-Guider是一種功能強(qiáng)大的軟件,它為用戶提供了一種簡單直觀的方式來創(chuàng)建和設(shè)計(jì)圖形用戶界面(GUI)。
    的頭像 發(fā)表于 11-14 12:38 ?3071次閱讀
    LVGL結(jié)合RT-thread快速開發(fā)出漂亮<b class='flag-5'>GUI</b>的利器<b class='flag-5'>GUI</b>-Guider

    STM32GUI_使用 STLINK+stm32gui-pydfb 工具來實(shí)時(shí)查看圖形緩存的圖片

    STM32GUI_使用 STLINK+stm32gui-pydfb 工具來實(shí)時(shí)查看圖形緩存的圖片
    的頭像 發(fā)表于 10-27 10:28 ?765次閱讀
    STM32<b class='flag-5'>GUI</b>_使用 STLINK+stm32<b class='flag-5'>gui</b>-pydfb 工具來實(shí)時(shí)查看圖形緩存的圖片

    AT32系列MCU使用RT-Thread Studio IDE進(jìn)行開發(fā)的注意事項(xiàng)和配置步驟

    AT32基于RT-Thread Studio開發(fā)描述了AT32系列MCU使用RT-Thread Studio IDE進(jìn)行開發(fā)的注意事項(xiàng)和配置步驟。
    發(fā)表于 10-24 08:12

    基于MCU通用GUI大盤點(diǎn)

    基于MCU通用GUI大盤點(diǎn)
    的頭像 發(fā)表于 10-18 17:07 ?747次閱讀
    基于MCU通用<b class='flag-5'>GUI</b>大盤點(diǎn)