嵌入式系統發展日新月異,安卓和ios已然戰勝了當年雄霸天下的塞班,界面是我們特别看重的因素之一。不過你考慮過自己做一套系統,寫一個界面庫麼?在單片機上自制系統,可以很好的鍛煉程式設計能力和架構設計能力。
雖然功能依舊有限,不能像目前主流嵌入式系統的"美觀":如漸變等,但這是2kb,8mhz的單片機!根本不能實作快速移動,否則會很卡很卡....各種圖檔和特效都是我在大四寒假裡花了大量時間反複優化的,現在看看,當年的很多工作,如果不拿出來,真的要徹底走入曆史的垃圾筐了。小傷感。
它有如下特點:
豐富的控件元素,應對絕大多數場景
僞多線程顯示(單片機是沒有多線程一說的,是以在視覺上同時更新不同控件是需要一定底層支援的)
動态界面(簡單滑動和漸隐效果)
對黑白和彩屏系統都可提供支援
如果是開發嵌入式界面的同仁,我相信我的文章會給您以一定的啟發。
下面的視訊示範了動态的效果:
可以用如下的結構圖表示整個控件庫:

通過控件組合,可以實作相當複雜的界面顯示,如下圖所示:
考慮到底層驅動并不具有普遍性,我沒有給出底層驅動的接口實作。
下面的函數給出了一部分gui基本功能庫的功能函數。
1. 對話框功能:
2. 清單控件
使用者可通過旋轉該終端選取不同項(需陀螺儀支援)
3. 動态曲線控件
該曲線使用了我自己開發的僞多線程技術,多條曲線可以動态顯示.本圖顯示了三軸加速度曲線實時顯示
4. 虛拟全鍵盤控件
我的系統僅僅提供了6個實體按鍵,為了解決複雜鍵盤輸入的問題,使用了虛拟全鍵盤控件。可以通過旋轉改變界面中紅框的位置~當紅框移到虛拟按鍵上時,點選确定即可上屏.
5. 圖表控件
顯示柱狀圖,随着菜單項的數量和大小,動态的修改柱狀圖的位置,以獲得最佳顯示效果.
6. 滑動條控件
可用于使用者通過移動滑動搖桿位置修改值.
7. 時間表顯示控件
8. 長整型數字輸入控件
9. 主菜單顯示控件
系統目前支援多種菜單樣式,下面的圖給出了其中兩種:
和以下菜單樣式:
其他控件由于已經在其他相關文章中出現,是以省略.
本文展示的界面控件僅僅是其中很小的一部分.其他還包括了密碼輸入控件,中文輸入法控件等,限于空間所限沒有一一顯示.這是當年熱火加蛋疼的大四,在沒有代碼提示和簡陋ide下一行一行的寫出來的代碼庫.這套界面庫的代碼量約為3000行.
有任何問題,歡迎随時交流。