一種代替串口屏的開源高效開發解決方案 | | 玲瓏GUI在小熊派上的移植

作爲一名熱衷開源的攻城獅,第一時間就把代碼下下來搗鼓一下,項目開源地址:

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,就發現我們需要的分辨率被添加進來了,這樣我們就成功的創建了一個工程。

點擊File==>New File==>創建一個UI佈局文件

接下來創建UI佈局文件,然後就可以開始我們的UI設計佈局了,以下是我的佈局:

點擊Tool==>Generate==>生成佈局文件對應的項目代碼
以下就是根據上面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源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章