lkdGui是一款為單色顯示屏制作的圖形化界面,lkdGui主要定位于工業(yè)控制領(lǐng)域,用于簡單漂亮的圖形界面設(shè)計(jì)。它的源代碼全部使用c語言編寫,符合c99標(biāo)準(zhǔn)。它包含了常用的畫圖函數(shù)如畫點(diǎn)、畫線、畫矩形、文字顯示、按鈕控件、進(jìn)度條控件。它使用`窗口`進(jìn)行統(tǒng)一管理和調(diào)度,使得各個(gè)應(yīng)用顯示模塊之間低耦合,方便應(yīng)用程序的開發(fā)。
lkdGui源碼介紹
1.lkdGui_source文件夾:它包含了lkdGui的所有源碼
A.include文件夾:它包含了Gui所有的.h文件。移植時(shí)應(yīng)將此路徑加入工程項(xiàng)目。
a.lkdGui.h:此文件里包含所有的Gui函數(shù)接口。用戶使用Gui函數(shù)時(shí)應(yīng)該包含此頭文件。
b.lkdGuiConfig.h:此文件用來配置和裁剪Gui.
c.lkdGuiTypedef.h:此文件定義了Gui相關(guān)的數(shù)據(jù)結(jié)構(gòu),使用者不必看它。
B.port文件夾:它里邊包含的是移植相關(guān)的文件。
a.fontDriver文件夾:它包含常用的字模庫、字庫芯片驅(qū)動(dòng)等。使用者可以在這里面加入字體相關(guān)的驅(qū)動(dòng)。
b.lcdDriverPort文件夾:它包含常用的液晶驅(qū)動(dòng)。使用者可以在這里面加入液晶相關(guān)的驅(qū)動(dòng)。
c.lcdDriverPort.c:Gui的液晶驅(qū)動(dòng)移植接口。用戶應(yīng)該填充里面的相關(guān)函數(shù)。
d.userFontPort.c:Gui的字體驅(qū)動(dòng)移植接口。用戶應(yīng)該填充里面的相關(guān)函數(shù)。
e.userAppPort.c:這個(gè)輸入應(yīng)用層,里面包含了初始化、窗口管理等函數(shù)。永和可以直接在這里面寫應(yīng)用。
C.source文件夾:Gui繪圖、窗口管理等相關(guān)函數(shù)實(shí)現(xiàn)源碼。
圖片來源:公眾號(hào)嵌入式的日常
lkdGui移植
上節(jié)的源碼介紹中已經(jīng)提到了移植相關(guān)的工作在port文件夾中。分為字體移植接口和液晶移植接口。1.字體移植接口:包含fontDriver文件夾和userFontPort.c。移植流程如下:
A.用戶先看fontDriver文件夾下有沒有自己要用的字體庫或字庫芯片驅(qū)動(dòng)。如果沒有則需要添加。
B.然后修改userFontPort.c。填充此文件中的相關(guān)函數(shù)。
a.GetDfontData():此函數(shù)用于獲取漢字字模。字體庫中應(yīng)該包含獲取字模的函數(shù).用此函數(shù)調(diào)用即可。
b.GetSfontData():此函數(shù)用于獲取ASII碼字模。使用如GetDfontData()。
c.用lkdFont結(jié)構(gòu)體對(duì)象聲明自己的字體->初始化->用GuiFontSet()設(shè)置為系統(tǒng)默認(rèn)字體。
2.液晶移植接口:包含lcdDriverPort文件夾和lcdDriverPort.c。移植流程如下:
A.用戶先看lcdDriverPort文件夾下有沒有自己要用的液晶驅(qū)動(dòng)。如果沒有則需要添加。
B.然后修改lcdDriverPort.c。填充此文件中的相關(guān)函數(shù)。(根據(jù)需求可以只填部分函數(shù))。下面是必須要填充的。
a.GuiUpdateDisplayAll():此函數(shù)用于將緩存的數(shù)據(jù)刷新到液晶。
b.GuiDrawPoint():畫點(diǎn)函數(shù)。在液晶固定位置畫點(diǎn)。3.修改lkdGuiConfig.h中液晶大小相關(guān)宏GUI_LCM_XMAX,GUI_LCM_YMAX.
4.用戶使用接口:用戶可使用的接口函數(shù)都包含在lkdGui.h中。userAppPort.c是用戶使用的模板。
lkdGui窗口介紹
lkdGui使用窗口作為管理、調(diào)度單元。用戶所有的繪圖都應(yīng)該在具體的某個(gè)窗口里邊。
1、lkdGuiConfig.h中的GUIWINMANAGE_NUM用于修改窗口最大嵌套數(shù)量。
2、GuiWinInit()系統(tǒng)上電時(shí)應(yīng)該使用它初始化窗口相關(guān)資源。
3、GuiWinDisplay()是窗口調(diào)度函數(shù),需要程序一直能執(zhí)行到。
4、lkdWin是窗口的結(jié)構(gòu)體。用戶使用它創(chuàng)建任意多個(gè)窗口實(shí)體對(duì)象。lkdWin->WindowFunction()是用戶在此窗口里畫圖等的接口。
5、GuiWinAdd()函數(shù)用于將lkdWin結(jié)構(gòu)的窗口實(shí)體對(duì)象加入到窗口調(diào)度棧中。
6、GuiWinDeleteTop()函數(shù)用于將頂部的窗口實(shí)體對(duì)象從窗口調(diào)度棧中移除。
7、GuiGetTopWin()函數(shù)可以獲取窗口調(diào)度棧中頂部的窗口(當(dāng)前顯示的窗口)。
lkdGui菜單介紹
菜單是lkdGui里一個(gè)有特色的控件,而且在工業(yè)控制中經(jīng)常使用。具體使用請(qǐng)參看例程。
lkdGui字體介紹
lkdGui可以添加很多字體庫,在使用過程中使用GuiFontSet()函數(shù)來切換。使用GetCurrentFont()函數(shù)可以獲取當(dāng)前的字體指針;
圖片來源:公眾號(hào)嵌入式的日常
其他控件和繪圖函數(shù)
見lkdGui.h。里面有詳細(xì)的使用說明。
如何在RT-Thread上使用lkdGui
聽取了使用者的意見后,lkdGui在第一版的基礎(chǔ)上對(duì)源碼程序進(jìn)行了整理,更新到版本V0.0.1.同時(shí),為了方便使用,將lkdGui加入到了RT-Thread的軟件包中。使用者只需在RT-Thread的管理工具env中選中l(wèi)kdGui即可(關(guān)于RT-Thread的使用請(qǐng)參看RT-Thread官網(wǎng))。下圖是lkdGui在menuconfig中的位置:
-
顯示屏
+關(guān)注
關(guān)注
28文章
4605瀏覽量
76390 -
工業(yè)控制
+關(guān)注
關(guān)注
38文章
1544瀏覽量
87028 -
軟件包
+關(guān)注
關(guān)注
0文章
111瀏覽量
11934
原文標(biāo)題:?【使用指南】lkdGui軟件包——專為工業(yè)控制領(lǐng)域而生
文章出處:【微信號(hào):RTThread,微信公眾號(hào):RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
一場圖形化編程與樹莓派的“跨界聯(lián)姻”?

紅冉LED顯示屏:技術(shù)革新引領(lǐng)未來發(fā)展

推薦一款MIP超低功耗顯示屏1.28寸/LS013B7DH03 工作功耗低至50μW
圖形顯示控制芯片RA6809可適用于哪些應(yīng)用場景


小尺寸單色LCD液晶顯示屏12832圖形點(diǎn)陣 低功耗128*32點(diǎn)陣COG顯示模塊

COG13264圖形點(diǎn)陣液晶屏,低功耗,F(xiàn)PC插接,SPI串口通訊,3.3V供電 2.4寸單色液晶顯示屏

液晶顯示屏與led顯示屏的區(qū)別
2024年LED顯示屏行業(yè)發(fā)展現(xiàn)狀及競爭格局

2024年LED顯示屏行業(yè)發(fā)展現(xiàn)狀及競爭格局

評(píng)論