ucGUI功能
ucgUI是一個圖形庫API,你可以使用LCD底層的畫點函數繪製一個圖形,但是如果要繪製複雜的視窗,就可以使用這個圖形庫。
ucgUI是一種嵌入式應用中的圖形支援系統.它設計用於為任何使用LCD圖形顯示的應用提供高效的獨立於處理器及LCD控制器的圖形使用者介面,它適用單任務或是多任務系統內容,
並適用於任意LCD控制器和CPU 下任何尺寸的真實顯示或虛擬顯示.
ucgUI的設計架構是模組化的, 由不同的模組中的不同層組成, 由一個LCD 驅動層來包含所有對LCD
的具體圖形操作, UCGUI 可以在任何的CPU上運行, 因為它是100%的標準C代碼編寫的.UCGUI能夠適應大多數的使用黑白或彩色LCD 的應用, 它提供非常好的允許處理灰階的顏色管理.還提供一個可擴充的2D圖形庫及佔用極少RAM的視窗管理體系.
ucGUI開發步驟
ucGUI基礎
回呼函數
就是一個通過指標調用的函數;定義一個回呼函數,提供函數實現的一方在初始化時,將回呼函數的指標註冊給調用者,當特定事件或條件發生時,調用者使用函數指標調用回呼函數對事件進行處理。
邏輯顏色
一個邏輯顏色總是定義為一個RGB數值,如白色 0xFFFFFF,黑色0x000000,大紅色0xFF0000
控制項:是一種圖形介面的元素,具有對象性質的的視窗;控制項是對資料和方法的封裝,可以有自己的屬性和方法,屬性是控制項資料的簡單訪問者,方法是控制項的一些簡單而可見的功能。對話方塊包含一個或多個控制項。
ucGUI 環境搭建
- 首先是資料手冊,STM32學ucGUI入門手冊,裡面介紹很多執行個體和API使用。
- 下載ucGUI的原始碼,包含很多的庫函數,API結合手冊學習
- 安裝keil uVision軟體,需要註冊,可以使用,但會提示編譯器不能編譯大檔案,有限制。使用註冊機,它的Computer ID居然在File菜單下的 License Managerment下面。要選ARM類型,不然也會不正確。
- 搭建庫函數,我直接拷貝了別人的工程檔案,裡面已經包含了很多庫。或者自己把ucGUI裡面的GUI檔案夾建立為庫。
- 項目編譯,然後Flash寫入ARM,我使用的是efm32gg290 F1024,是一個功耗很低的arm處理器。 一直出現錯誤,後來發現把燒寫器的線插反了,
- 下一步,看懂項目的組成,自己學習改寫。
控制代碼
控制代碼實際是指向某種資源的指標,但又與指標不同,指標對應著一個資料在記憶體中的地址,得到指標就可以自由的修改資料。但是Windows比不希望一般程式修改其內部資料結構,這樣不安全。控制代碼實際上是個long型整數,Windows用來標識對象和項目,應用程式幾乎總是通過調用一個Windows函數來獲得一個控制代碼,之後其他Windows函數就可以使用該控制代碼,以引用相應的對象。控制代碼只能調用系統提供的服務,普通ID是程式員在編程時自己確定的,控制代碼是對象產生時系統給的,好比電影院的門票,每次可能不同。