野火stm32-05、學(xué)習(xí)unlock第02章入門指南_第1頁
野火stm32-05、學(xué)習(xí)unlock第02章入門指南_第2頁
野火stm32-05、學(xué)習(xí)unlock第02章入門指南_第3頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、這一章提供一個(gè)在你的目標(biāo)系統(tǒng)上設(shè)置和配置C/GUI的基本處理過程的概述。同時(shí)也包括了一個(gè)簡(jiǎn)單的范例程序。請(qǐng)注意,大多數(shù)在后面的章節(jié)會(huì)有更詳細(xì)的描述。在你開始更復(fù)雜的編程之前,你很有必要參閱本手冊(cè)的其它部分。C/GUI 中文手冊(cè)第 1 頁2.1的結(jié)構(gòu)使C/GUI 和你的應(yīng)用文件分離,這是的。在工程文件的“root”目錄的 GUI 子目錄下保留所有的程序文件(包括頭文件),這是一個(gè)好的。目錄結(jié)構(gòu)應(yīng)該和下圖相似。這種有一個(gè)好處,就是很容易升級(jí)更新版本的C/GUI,只需要替換 GUI 目錄就可以。子目錄下表顯示了 GUI 所有子目錄的內(nèi)容(帶“*”標(biāo)志的為可選項(xiàng))C/GUI 中文手冊(cè)第2 頁目錄內(nèi)容C

2、onfig配置文件GUI/AntiAlias抗鋸齒支持 *GUI/ConvertMono用于 B/W(黑白兩色)及灰度顯示的色彩轉(zhuǎn)換程序GUI/ConvertColor用于彩色顯示的色彩轉(zhuǎn)換的程序GUI/CoreC/GUI 內(nèi)核文件GUI/Font字體文件GUI/LCDDriverLCD 驅(qū)動(dòng)GUI/Mendev器件支持 *GUI/Touch觸摸屏支持 *GUI/Widget視窗控件庫 *GUI/WM視窗管理器 *“Include”目錄確認(rèn)你的 Include 路徑包括有以下目錄(包括的先后順序并不重要):Config GUI/CoreGUI/Widget(如果使用視窗控件庫)GUI/WM(如

3、果使用視窗管理器)警告:你必須確認(rèn)你在每個(gè)文件中只使用了一個(gè)版本的C/GUI2.2 向目標(biāo)程序加入C/GUI你主要是在這兩者之間做一個(gè)選擇,一是將你要在你的工程中使用的源文件包括進(jìn)來,然后進(jìn)行編譯和連接;或者建立一個(gè)庫并連接這個(gè)庫文件。如果你的工具支持“智能化”連接(僅僅連接那些使用到的模塊而不是那些沒有使用到的模塊),那么就完全沒有必要建立建立一個(gè)庫,因?yàn)橹皇且髮⒑瘮?shù)和數(shù)據(jù)結(jié)構(gòu)進(jìn)行連接。如果你的工具不支持“智能化”連接,建立一個(gè)庫就很有意義了,否則如果將每樣?xùn)|西都要進(jìn)行連接的話,程序會(huì)變得非常大。對(duì)于一些 CPU 來說,能提供有效的范例工程幫助你開始使用。2.3 建立一個(gè)庫從源程序建立一個(gè)

4、庫是一個(gè)簡(jiǎn)單的流程。第一步是拷貝批處理文件(位于leMakelib”目錄下面)到根目錄下。然后,做一些必要的修改??偣灿兴膫€(gè)批處理“S文件需要拷貝,如下表描述的那樣。主文件“Makelib.bat”在所有的系統(tǒng)中都是一樣的,所以無需修改。在你的目標(biāo)系統(tǒng)上建立一個(gè)庫,正常情況下你需要對(duì)其它三個(gè)比較小的文件做一些微小的改動(dòng)。最后執(zhí)行“Makelib.bat”文件建立庫。批處理文件假定你的 GUI 和配置子目錄已經(jīng)如前面所的那樣建立起來了。建立庫的流程如下圖所示。Makelib.bat 文件首先調(diào)用 Prep.bat 準(zhǔn)備用于工具的環(huán)境。然后調(diào)用 CC.bat 處理庫當(dāng)中所包括的每一個(gè)文件,做完這些

5、工作需要一些時(shí)間。CC.batC/GUI 中文手冊(cè)第 3 頁文 件說明Makelib.bat主批處理文件,不需要修改Prep.bat由 Makelib.bat 調(diào)用,建立用于工具的工作環(huán)境CC.bat由 Makelib.bat 調(diào)用,對(duì)庫所用到的文件進(jìn)行處理,為這些目標(biāo)文件建立一個(gè)列表,該列表在下一步中由 lib.bat 中的lib.bat由 Makelib.bat 調(diào)用,將列表中的目標(biāo)文件置入一個(gè)庫當(dāng)中將這些目錄文件加入一個(gè)列表,這個(gè)列表是 lib.bat 要使用的。當(dāng)所有加入到庫當(dāng)中的文件已經(jīng)寫入列表后,Makelib.bat6 調(diào)用 lib.bat,使用一個(gè)庫管理工具將列表中的目標(biāo)文件置

6、入一個(gè)活動(dòng)的庫當(dāng)中。Makelib.batPrep.batCC.bat否所有文件已加入庫中?是Lib.bat假設(shè)一個(gè)微軟編譯器已經(jīng)安裝到它的默認(rèn)位置。如果所有的批處理文件都拷貝到根目錄(GUI 的上一級(jí)目錄),并且不作任何修改,將會(huì)產(chǎn)生一個(gè)用于C/GUI 仿真的仿真庫。無論如何,要建立一個(gè)目標(biāo)庫的話,必須要對(duì) Prep.bat、CC.bat 和lib.bat 三個(gè)文件進(jìn)行修改。2.4 將C/GUI的“C”文件加入工程中通常說法,你需要加入C/GUI 的及其它你定制可選擇的模塊:“C”文件,LCD 驅(qū)動(dòng),你顯示屏所使用的字體文件目錄 GUICore、GUIConvertColor 及 GUICo

7、nvertMono 下的所有“C”文件你的顯示屏用到的字于目錄 GUIFont 下)附加的包如果你的顯示屏使用附加的可選的模塊,你必須也要包括相關(guān)的“C”文件C/GUI 中文手冊(cè)第4 頁2.5 配置C/GUI配置目錄應(yīng)該包含與你的要求相匹配的配置文件。文件 LCDConf.h 通常包含所有的需要的定義,使你能夠?yàn)槟愕?LCD 使用C/GUI,這是開始配置C/GUI 的主要任務(wù)。了解節(jié),請(qǐng)參閱第 20 章“底層配置”。的細(xì)如果因?yàn)槟銢]有選擇正確的顯示方案或選擇了錯(cuò)誤的 LCD 控制器而導(dǎo)致C/GUI 沒有正確配置,LCD 可能不會(huì)顯示任何東西,或者顯示些不是你所期望的內(nèi)容。因此,要注意修改你所需

8、要的 LCDConf.h。配置宏的類型下面是一些配置宏的類型:二進(jìn)制開關(guān)“B”這個(gè)開關(guān)的數(shù)值是“0”或“1”,“0”表示不激活,而“1”表示激活(除了“0”以外的數(shù)值都可以激活,但是使用“1” 使配置文件更易于閱讀)。這些開關(guān)能夠啟用或功能或行為。開關(guān)是配置宏中最簡(jiǎn)單的格式。某一個(gè)數(shù)值“N”數(shù)值有代碼中某些地方使用,以替代數(shù)值常量。在 LCD 配置方案中有一個(gè)典型的例子。選擇開關(guān)“S”選擇開關(guān)用于從多個(gè)選項(xiàng)中選擇一項(xiàng)(只能選中一項(xiàng))。典型的例子是用于所使用的 LCD控制器的選擇,選擇的數(shù)值指示調(diào)用相應(yīng)源代碼(相應(yīng)的 LCD 驅(qū)動(dòng))產(chǎn)生目標(biāo)代碼。別名“A”一個(gè)類似于簡(jiǎn)單的文本替代這樣操作的宏。一

9、個(gè)典型例子是定義 U8,預(yù)處理程序會(huì)用“unsigned char”代替“U8”。函數(shù)替換“F”該宏基本被視為一個(gè)正常的函數(shù),盡管有某些應(yīng)用上的限制,宏依舊被放入代碼當(dāng)中,就象文本代換的例子一樣。函數(shù)替換主要用于給一個(gè)高度依賴硬件的模塊增加一些特殊的函C/GUI 中文手冊(cè)第 5 頁數(shù)(例如 LCD 的),這類宏通常使用括?。ㄅc可選擇參數(shù)一起)來。2.6 初始化C/GUI程序 GUI_Init()初始化 LCD 和C/GUI 的數(shù)據(jù)結(jié)構(gòu),在其它C/GUI 函數(shù)運(yùn)行之前必須被調(diào)用。這通過將下面一行放入你的程序序列的開始來做到:GUI_Init();如果忽略了這個(gè)調(diào)用,整個(gè)圖形系統(tǒng)將不會(huì)得到初始化,

10、從而無法準(zhǔn)備下一步的動(dòng)作。2.7 在目標(biāo)硬件上使用C/GUI下面所陳述是只是使用C/GUI 進(jìn)行編程的一些基本的步驟要點(diǎn)。這些步驟更詳細(xì)的解釋在以后的章節(jié)介紹。第一步:定制C/GUI通常第一步是通過修改頭文件 LcdConf.h 來定制C/GUI。你必須定義一些基本數(shù)據(jù)類型(U8,U16 等),及有關(guān)顯示方案和所使用的 LCD 控制器的開關(guān)配置。第二步:定義地址和規(guī)則對(duì)于使用器映象的 LCD,僅僅需要在 LcdConf.h 中定義地址。對(duì)于端口/緩沖的 LCD,必須定義接口程序,在 SlesLcd_x 目錄下,或是在Web站點(diǎn)的區(qū)的中,有一些所需的接口程序的范例代碼可供參考。第三步:編譯、連接

11、和測(cè)試范例程序C/GUI 帶有一些單任務(wù)和多任務(wù)環(huán)境下的范例程序,編譯、連接和測(cè)試這些范例程序,直到你感覺已經(jīng)熟悉它們了。第四步:修改范例程序?qū)Ψ独绦蜻M(jìn)行簡(jiǎn)單的修改,增加些額外顯示一條線等等。令,諸如在顯示時(shí)顯示不同尺寸的文字,C/GUI 中文手冊(cè)第6 頁第五步:多任務(wù)應(yīng)用:適應(yīng)你的操作系統(tǒng)(如果需要的話)如果多任務(wù)允許同時(shí)顯示器,則宏 GUI_MAXTASK 和 GUI_OS 與文件 GUITask.cg 一道開始運(yùn)行。更詳細(xì)的內(nèi)容及范例程序的修改請(qǐng)參考第 21 章:次配置。第六步:使用C/GUI 編寫你的應(yīng)用程序到現(xiàn)在,你應(yīng)該對(duì)如何使用C/GUI 應(yīng)該有一個(gè)清楚的了解??紤]如何去構(gòu)建你的

12、應(yīng)用要求的程序,通過調(diào)用適當(dāng)?shù)某绦騺硎褂肅/GUI。參考本手冊(cè)后面相關(guān)的章節(jié),這些章節(jié)特殊的C/GUI 函數(shù)和配置有效的宏。2.8 “o World”范例程序在早些時(shí)候,一個(gè)“o World”程序被做為 C 語言編程的入門程序,因?yàn)樗举|(zhì)上是一個(gè)能寫出的最簡(jiǎn)單的程序。C/GUI 的“在C/GUI 所帶的范例中的它的名稱為 Basic_o World”程序的名稱是oWorld.c。o.c,如下所示。該程序的目的是在顯示器的左上角寫“o World”,為了能實(shí)現(xiàn)這個(gè)功能,應(yīng)用硬件,LCD 和 GUI 必須首先要初始化。C/GUI 的初始化通過在程序開始調(diào)用 GUI_Init()來實(shí)現(xiàn),就象先前所描

13、述的那樣。在本程序中,假設(shè)應(yīng)用硬件的初始化已經(jīng)完成。/*-文件:目的:BASIC_繪制“oWorld.co world”的簡(jiǎn)單范例*/#includeGUI.H/*主函數(shù)*/void main(void)/* 要做的事:確認(rèn)硬件首先初始化了! */ GUI_Init();GUI_DispString(while(1);o world!);C/GUI 中文手冊(cè)第 7 頁給“o Word”程序增加功能的小程序能做的工作實(shí)在太少,現(xiàn)在對(duì)它擴(kuò)展一點(diǎn)功能:在顯示“o World”后,希望程序開始計(jì)數(shù)以估計(jì)能夠獲得多快的輸出速度(至LCD)。在主程序末尾的僅僅增加一點(diǎn)點(diǎn)代碼進(jìn)行循環(huán),本質(zhì)上是調(diào)用一個(gè)顯示十進(jìn)制形態(tài)數(shù)值的函

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論