作爲一名熱衷開源的攻城獅,第一時間就把代碼下下來搗鼓一下,項目開源地址:
https://gitee.com/gzbkey/LingLongGUI
玲瓏GUI教程:教程地址:
https://www.yuque.com/books/share/3317aaa7-f47f-4bfd-a4c2-7e64e7f1c4be
以下1、2段摘抄自碼雲LingLongGUI
官方倉庫README
:
1、玲瓏GUI介紹
-
玲瓏GUI是高效的界面開發解決方案。 -
代替串口屏、組態,降低產品成本,產品軟硬件自主可控。 -
配套界面開發軟件,圖形化編輯界面,生成C代碼,直接和用戶產品代碼結合。 -
配套下載升級軟件和bootloader,解決產品升級功能和圖片下載問題。
2、玲瓏GUI最終目的
提高開發效率,降低開發難度,降低產品成本。
那麼它究竟有多容易呢?楊工帶你們體驗一下,進入實踐環節來體驗一下:
3、玲瓏GUI在小熊派開發板上的移植
3.1、準備一個能點亮屏的代碼工程
這個以前就有了,隨便在這下面找一個能亮屏的工程即可:
3.2、移植玲瓏GUI
3.2.1、安裝LingLongGuiBuilder
安裝完畢後,打開的效果是這樣的:
接下來需要創建工程,然後再創建GUI文件,拖放對應的控件:
-
點擊File==>New Project==>創建一個工程
如圖所示,這裏的ST7789對應的這個設備類型是沒有的,是我後來自己加上去的,具體怎麼讓工具支持對應屏的分辨率呢??這時候我們需要給LingLongGuiBuilder
添加對應的屏分辨率適配;接下來打開LingLongGuiBuilder
安裝路徑,修改deviceType
腳本:
配置完畢然後再次打開LingLongGuiBuilder
,就發現我們需要的分辨率被添加進來了,這樣我們就成功的創建了一個工程。
接下來創建UI佈局文件,然後就可以開始我們的UI設計佈局了,以下是我的佈局:
其中buildOutPut
是生成的用戶代碼,這部分是需要添加到我們代碼裏的,如下:
3.2.2、移植玲瓏GUI到已經具有LCD顯示的工程
首先,從碼雲上下載玲瓏GUI的代碼:
git clone https://gitee.com/gzbkey/LingLongGUI.git
下載完以後,項目結構如下:
-
在Keil工程裏添加玲瓏GUI代碼
首先將整個玲瓏的工程源碼複製到Keil工程下,然後創建其它兩個文件夾:
其中:
LingLongGUI:玲瓏項目源碼LingLongGUI_Config:配置模板以上這個模板複製的是LingLongGUI
裏的這兩個文件LingLongGUI_User:用戶文件
這個文件夾存放的就是使用LingLongGuiBuilder
生成的buildOutput
的代碼:
接下來打開Keil MDK工程,
1、修改Keil配置
AC5的Keil編譯版本必須填入--no-multibyte-chars,AC6版本的Keil編譯版本則不需要
2、導入UI工程文件路徑添加對應的文件到項目中:
3、添加驅動函數及修改配置文件
打開LL_Config.c,添加如下函數:
//TFT打點函數
llCfgSetPoint
//TFT取色函數
llCfgGetPoint
//TFT矩形單色填充函數
llCfgFillSingleColor
如下所示:llCfgGetPoint
這個函數在小熊派上不適用,所以不需要填,等後面換一個支持觸摸屏的板子就需要用到它了,接下來修改LL_Config.h中的屏幕分辨率以及顏色位數:
4、修改MCU堆的大小
由於LingLong GUI在創建GUI的時候需要利用堆來分配空間,所以這裏儘量把堆調大一點,否則畫出來的GUI控件沒法顯示完全,當然源碼裏提供了一個FreeRTOS的堆,你也可以考慮用那個,因爲進行堆內存分配時,最好的做法是儘量不要用系統庫自帶的內存分配函數malloc和free。
5、main函數加入初始化函數和循環函數
包含頭文件:
#include "LL_Handler.h"
然後添加:
最後將代碼編譯並下載到板子上:
4、玲瓏GUI展示效果
5、項目開源地址
本節代碼已同步到碼雲的代碼倉庫中,獲取方法如下:
碼雲倉庫:
https://gitee.com/morixinguan/linglong_gui_demo
獲取項目方法:
git clone https://gitee.com/morixinguan/linglong_gui_demo.git
我還將之前做的一些項目以及練習例程在近期內全部上傳完畢,與大家一起分享交流,如果有任何問題或者對該項目感興趣,歡迎加我微信:morixinguan一起交流學習。
玲瓏GUI目前還正處於快速成長期,還需要各位大佬一起貢獻支持,如果你也喜歡這個項目,歡迎給這個倉庫點個Star,並加入開源玲瓏GUI液晶模組方案
QQ羣,和大佬們一起共同成長!
本文分享自微信公衆號 - 小熊派開源社區(BearPi-Club)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。