使用迪文24位色(H600內(nèi)核)串口屏的幾個開發(fā)技巧和大家分享一下: 1. 顯示HEX參數(shù)有一條0xC108的參數(shù)顯示指令,可以不用再進行煩人的HEX到ASCII轉換計算和顯示格式轉換,比如字體大小,顯示幾位小數(shù)點,無效的零顯示不顯示等,只要把顯示的HEX數(shù)據(jù)發(fā)給迪文屏就可以了。0xC108指令的另外一個用途就是特別多參數(shù)(比如一屏顯示200個參數(shù))顯示時,可以同時顯示出來,避免了一個個蹦出來的效果。 2. 指針表盤做一個表盤的底圖和一個指針的底圖,利用0x9E圖標旋轉指令讓(多個)指針在表盤底圖上指定角度和中心旋轉,可以設計出非常漂亮的指針表盤,比如汽車儀表板、時鐘、旋轉的馬達等。 3.曲線縮放0xC106指令可以讓用戶指定X軸取樣間隔、Y軸放大倍數(shù)和零點位置,而迪文屏自動對數(shù)據(jù)進行處理,實現(xiàn)曲線自動縮放,用戶只需把A/D的結果傳送給迪文屏就OK了。0xC106指令的另外一個用途就是通過修改顯示的指針,可以很方便實現(xiàn)歷史記錄回放,對RAM緩沖區(qū)小的單片機尤其適合。 4. 觸摸屏界面自動切換 使用觸控界面開發(fā)工具(集成在迪文串口調試助理里面),可以事先安排好觸摸屏界面的操控邏輯,把生成的配置文件下載到迪文屏0x1E字庫位置,并使用0xE0(0xE3)指令修改Para1.5=1啟用觸控模式,那么觸摸屏界面間的切換將無須用戶代碼操心了。在需要用戶代碼干涉的界面觸發(fā)按鈕下綁定一個“回傳代碼”,可以在界面切換需要用戶代碼干涉時自動回傳預設的代碼。 5. 觸摸屏錄入凡是開發(fā)過GUI的大蝦們都清楚,參數(shù)錄入是個讓大家頭大的事情,尤其是當參數(shù)錄入時,軟件其它功能還要正常更不容易。迪文觸摸屏有條0x7C指令讓觸摸屏錄入非常簡單。0x7C01是對ASCII字符(比如參數(shù)設定)的錄入,0x7C02是ASCII和中文GBK拼音的混合錄入。發(fā)送0x7C指令告訴迪文屏啟動指定參數(shù)錄入后,用戶代碼就不用管了,錄入結束后,迪文屏會自動上傳指令告訴用戶代碼錄入的是哪個參數(shù),錄入內(nèi)容是什么。由于迪文屏按照多任務來處理0x7C指令,錄入期間,用戶代碼可以正常操作迪文屏其它功能(比如曲線照常變化),不會因為錄入而中斷。GBK拼音錄入其實是基于預裝在迪文屏0x01位置的詞庫實現(xiàn),用戶可以通過修改詞庫來實現(xiàn)對一些特殊符號的快速錄入,比如迪文預裝詞庫就設計了用"BD"來錄入所有全角標點符號。 6. 需要經(jīng)常重復執(zhí)行的指令(比如動畫顯示)使用0x9A自動指令組執(zhí)行來實現(xiàn)。 7. 時鐘的使用0x9B指令可以把時鐘按照指定的字體大小和顏色自動疊加顯示在界面的指定位置;0x9B指令還可以回讀當前時鐘,包括公歷和陰歷(農(nóng)歷)時間;0xE7指令可以修改時鐘。 8. 視角的調整通過0xE0(0xE3)指令調整Para1.2和Para2.5,可以實現(xiàn)4種不同視角(0/90/180/270旋轉)的軟件調整,以適應不同的應用。 9. 不要高頻度重復顯示盡管迪文屏的處理速度已經(jīng)非常快(800×600分辨率,1秒可以全屏顯示18幅圖片或10萬個16×16的漢字),但是由于指令集極其精簡,致使通信時間遠低于處理時間,高頻度重復顯示,可能還是會導致串口緩沖區(qū)溢出(迪文屏最多可緩沖24個未處理的串口數(shù)據(jù)幀)而丟幀,引起顯示錯誤。簡單辦法是檢測硬件BUSY信號或者合理速度(比如100mS以上間隔)的全部刷新界面所有活動內(nèi)容一次。 10. 一定要請專業(yè)美工設計界面對于迪文屏真24位色顯示(比一般DVI接口的顯示器顯示效果還棒),如果不請個專業(yè)美工幫助設計界面,那實在是浪費。有個大概輪廓,請專業(yè)美工幫忙的開銷并不大(大約30-200人民幣/頁面,一般產(chǎn)品也就10來個頁面),讓產(chǎn)品的GUI超級炫,這個錢花得絕對值。 |