大家好,我是ZhengN。
嵌入式大雜燴周記主要是一些實(shí)用項(xiàng)目學(xué)習(xí)分享,每周一篇,每篇一個(gè)主題。
內(nèi)容主要來源于我們之前收集的資料:
https://gitee.com/zhengnianli/EmbedSummary
本期主角:LingLongGUI
玲瓏GUI是高效的界面開發(fā)解決方案。
- 代替串口屏、組態(tài),降低產(chǎn)品成本,產(chǎn)品軟硬件自主可控。
- 配套界面開發(fā)軟件,圖形化編輯界面,生成C代碼,直接和用戶產(chǎn)品代碼結(jié)合。
- 配套下載升級(jí)軟件和bootloader,解決產(chǎn)品升級(jí)功能和圖片下載問題。
玲瓏GUI源碼地址:
https://gitee.com/gzbkey/LingLongGUI
license:Apache License, Version 2.0 + 附加協(xié)議。
關(guān)于開源軟件協(xié)議相關(guān)文章:常用的開源協(xié)議有哪些?
教程鏈接:
https://www.yuque.com/books/share/3317aaa7-f47f-4bfd-a4c2-7e64e7f1c4be
LingLongGUI的使用
下面,我們通過一步一步地實(shí)踐來認(rèn)識(shí)認(rèn)識(shí)LingLongGUI。
其實(shí)我們可以不下載源碼,僅下載LingLongGuiBuilderTool工具即可,LingLongGuiBuilderTool是LingLongGUI配套的界面開發(fā)軟件,通過拖拽控件的方式設(shè)計(jì)界面并生成代碼。
注意:以下操作基于LingLongGuiBuilderTool_2022.1.18版本,不同的LingLongGuiBuilderTool版本可能操作不一樣。
1、LingLongGuiBuilderTool里自定義屏幕分辨率
LingLongGui的作者有自己設(shè)計(jì)了幾款開發(fā)板:

其LingLongGuiBuilderTool工具默認(rèn)只支持這幾款開發(fā)板。LingLongGuiBuilderTool安裝路徑中的配置文件deviceType.ini中的內(nèi)容如:

溫馨提示:ini配置文件相關(guān)推文可轉(zhuǎn)至嵌入式開發(fā)小記,實(shí)用小知識(shí)分享
下面的操作中,我們沒有使用官方開發(fā)板來做實(shí)驗(yàn),所以需要在配置文件里新增我們開發(fā)板的配置。我們使用小熊派IOT開發(fā)板來做實(shí)驗(yàn),添加的內(nèi)容如:

2、實(shí)踐
實(shí)踐步驟,上面的教程寫得很清楚,下面跟著走一遍:
(1)準(zhǔn)備一份LCD顯示的例程。
(2)keil設(shè)置
--no-multibyte-chars--locale=english

AC5必須填入--no-multibyte-chars,AC6則不需要
(3)啟動(dòng)gui builder,keil -- tools --LingLongGuiBuilder



新建一個(gè)UI File,然后拖動(dòng)控件設(shè)計(jì)我們的界面:

設(shè)計(jì)完成后 保存文件及工程
,然后點(diǎn)擊左上角綠色三角形按鈕或者點(diǎn)擊Tool->Generate可生成對(duì)應(yīng)GUI代碼源文件存放于我們的工程目錄下及自動(dòng)添加到工程里:


編譯看看有沒有報(bào)錯(cuò):

如果報(bào)大量錯(cuò)誤的話看看keil Options for Target是否按照上面的步驟進(jìn)行修改。如果報(bào)如下錯(cuò)誤:

把LL_Config.h里的宏 USE_LLGUI_EX
屏蔽掉即可:

編譯報(bào)了一些警告,這些警告是LLGUI相關(guān)的,一些變量定義未使用等警告,我們這里不管它們,也可以在keil Options for Target -- C/C++ -- Misc Controls加入如下內(nèi)容屏蔽相關(guān)警告編號(hào)的警告:
--diag_suppress=xxx(這里的xxx表示警告的編號(hào))
比如屏蔽掉550號(hào)警告:
--diag_suppress=550
相關(guān)內(nèi)容可參考文章:
https://www.cnblogs.com/svchao/p/13917877.html
編譯未報(bào)錯(cuò)我們再往下看。
(4)修改llGuiUser下的LL_Config.c文件

修改如:

LL_Config.c添加lcd.h包含:

(4)修改LL_Config.h中的屏幕參數(shù)

(5)增大堆的大小

否則可能無法正常顯示:控件無法顯示或顯示不全。
(5)在main.c中添加如下內(nèi)容
#include"ui_test.h"
int
main
(void)
{
ui_testInit();
while
(
1
)
{
}
}


編譯、下載即可看到我們剛才在LingLongGUIGuilderTool里設(shè)計(jì)的界面了:

通過上面的操作,我們發(fā)現(xiàn)LingLongGUI很容易地移到我們的工程里。
對(duì)比其它GUI,我們移植其它GUI時(shí),可能需要自己新建、復(fù)制一些文件夾/文件到我們的工程目錄下,再手動(dòng)添加到keil工程里,再挨個(gè)添加頭文件包含路徑,這些操作挺煩人的。
而使用LingLongGUI時(shí),通過LingLongGUIGuilderTool可以很方便地設(shè)計(jì)我們的UI界面、生成代碼并自動(dòng)添加到keil工程工程中,省了不少事!
另外,還有很方便的一點(diǎn):
當(dāng)LingLongGUI遠(yuǎn)程倉庫有更新時(shí),可以直接在生成的LingLongGUI文件夾下通過git來拉取最新代碼:


LingLongGUI現(xiàn)在還處于起步階段,還在不斷完善優(yōu)化中,勢頭還可以,大家可持續(xù)關(guān)注。
以上就是本次的分享,我們下期見~
keil Options for Target -- C/C++ -- Misc Controls 填入
keil Options for Target -- C/C++ -- 勾選C99
-
源碼
+關(guān)注
關(guān)注
8文章
671瀏覽量
30307 -
代碼
+關(guān)注
關(guān)注
30文章
4899瀏覽量
70646 -
開發(fā)軟件
+關(guān)注
關(guān)注
1文章
25瀏覽量
13148
發(fā)布評(píng)論請(qǐng)先 登錄
評(píng)論