ucGUI與emWin是眾多嵌入式工程師編寫顯示界面的首選,但是隨著版本的升級,對于商用GUI提出了專利費的要求,這也是國內小型企業(yè)所不愿意接受的。于是,編寫了一份屬于自己的獨特GUI界面代碼。作品采用stm32作為主MCU,驅動LCM12864進行顯示。我們的任務是寫自己的GUI,因此對其他外設資源要求不高。另能力僅屬于中神級別,尚未爐煉至大神級別,因此我們先用單色LCM12864練手,此貼至此始終開源,供大家一起學習交流,把xlGUI豐富起來。
系統(tǒng)設計框圖:
講解:
1.xlGUI采用WM_Manage窗口管理器統(tǒng)一管理UI消息事件,用戶交互消息(數(shù)據(jù)信息、按鍵事件等等)均通過WM_SendMessage發(fā)送至控件,由控件自行解析事件類型并響應消息;
2.整個工程中GUI_GDI是公共繪圖接口,其作用是方便控件或者用戶對顯示屏進行繪制顯示;
3.GUI_GDI統(tǒng)一調用GUI_Drive函數(shù)接口進行操作顯存,本例程中,我們在GUI_GDI里面開辟了m_MemDev顯示內存池,該內存池與顯示屏顯示像素一一對應,GUI_GDI所有函數(shù)默認直接操作顯存池像素點。 顯存刷新操作則統(tǒng)一由GUIDRV_DEVICE_API函數(shù)完成,用戶不同類型的顯示屏均可以通過編寫GUI_Driver函數(shù)達到驅動顯示目的。
制作成功實物圖片:
說明:
作品全部使用C語言進行編寫,通俗易懂,熟悉GDI界面編程的更加不會陌生。作品旨在提供小型GUI界面編程入門,并盡可能提供擴展接口,備注詳細,方便各路嵌入式大神進行移植擴展維護,希望這版本GUI最終演化成能夠替代ucGUI/emWin。
該項目設計來源于立創(chuàng)社區(qū),設計資料僅供學習參考。