加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
    • 一 前言
    • 二 需求
    • 三 實(shí)施
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

【教程】迪文串口屏基礎(chǔ)GUI開(kāi)發(fā)流程

07/19 09:06
1902
閱讀需 10 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

一 前言

手頭有一款閑置串口屏,其型號(hào)為,是一款7寸800*480分辨率的電容觸摸屏。這款屏幕是支持6~36V供電的,自帶3個(gè)串口輸出,分別是UART2,UART4,UART5。其中UART2和UART4是RS232接口的,UART2也作為系統(tǒng)默認(rèn)的調(diào)試串口,UART5是RS485接口的,但UART4和UART5都需要對(duì)系統(tǒng)的OS核做修改才能使用。迪文的資料較為混亂,花費(fèi)了大量的時(shí)間研究。

首先:迪文芯片分為T5和T5L系列,并不兼容,在T5L內(nèi)同時(shí)分為T5L0T5L1T5L2,但在官網(wǎng)最新的<迪文 T5L ASIC 應(yīng)用開(kāi)發(fā)指南.pdf>版本為V1.1,這一參考資料中,僅描述了T5L1以及T5L2系列,這個(gè)區(qū)別主要是屏幕顯示分辨率和存儲(chǔ)扇區(qū)以及單個(gè)文件大小的限制方面有區(qū)別。

通過(guò)查看迪文給出的手冊(cè)得知此款屏幕采用的迪文自研的T5L0芯片,但不知為何手上這款雖然型號(hào)相同,但在程序更新時(shí)顯示的則是T5L1,與手冊(cè)標(biāo)注并不相同。但在開(kāi)發(fā)過(guò)程中選擇T5L0或是T5L1沒(méi)有區(qū)別,也可能是沒(méi)有達(dá)到等級(jí)的分水嶺。

其次:如手冊(cè)所說(shuō),T5L是單芯雙核,指的是芯片內(nèi)部是兩個(gè)單獨(dú)的8051核心,分別是GUI核和OS核,兩個(gè)核心對(duì)應(yīng)的功能不同,開(kāi)發(fā)方式也截然不同,這點(diǎn)需要特別注意。GUI核運(yùn)行迪文自己的DGUS Ⅱ系統(tǒng),使用迪文推出的上位機(jī)軟件進(jìn)行開(kāi)發(fā),OS核可以由用戶自己開(kāi)發(fā)功能或使用迪文提供的基本功能示例,但遇見(jiàn)復(fù)雜情況還是無(wú)法滿足需求,需要用戶自己編寫(xiě)處理邏輯,有兩種開(kāi)發(fā)方式可選:一是標(biāo)準(zhǔn)C代碼,二是匯編指令開(kāi)發(fā),可以采用KEIL或迪文推出的< DWIN C Complier>進(jìn)行8051內(nèi)核OS代碼的開(kāi)發(fā),KEIL開(kāi)發(fā)需要安裝迪文提供的驅(qū)動(dòng)包< KEIL AGDI T5 >。

二 需求

使用這款屏幕的目標(biāo)是:

①作為主機(jī)進(jìn)行ModBus通信

②讀取指定從機(jī)數(shù)據(jù)并顯示到屏幕中的指定變量

③支持下發(fā)參數(shù)至從機(jī)ModBus寄存器

④使用RS485接口

從需求來(lái)看,需要做的事情可以分為兩個(gè)部分,一是UI數(shù)據(jù)的顯示,迪文的DGUS Ⅱ采用的方式是用事先設(shè)計(jì)好的圖片做背景,所有的操作均以圖片為基礎(chǔ)進(jìn)行布局、顯示和觸摸,這就需要提前設(shè)計(jì)好整個(gè)系統(tǒng)的UI原型和交互流程。二則是ModBus數(shù)據(jù)交互,數(shù)據(jù)交互已經(jīng)超出了GUI核的處理范圍,所以需要進(jìn)行OS核的代碼編寫(xiě),因?yàn)镸odBus已經(jīng)是廣泛的工業(yè)協(xié)議,所以迪文已經(jīng)提前編譯了各個(gè)串口的ModBus協(xié)議棧程序了,用戶需要替換對(duì)應(yīng)的DWINOS程序以及按要求下載指令配置文件即可。

三 實(shí)施

1. UI數(shù)據(jù)顯示

素材準(zhǔn)備

如上所說(shuō),整個(gè)系統(tǒng)流程是以圖片為導(dǎo)向的,所以在設(shè)計(jì)系統(tǒng)前即應(yīng)該畫(huà)出設(shè)計(jì)原型,這里選擇的800*480分辨率的屏幕,所以在圖片尺寸上也應(yīng)設(shè)置相同尺寸,但在圖片的格式上迪文做了一些限制,需要24bit色深的bmp或jpgjpeg格式,Windows可以在圖片上右擊->屬性->詳細(xì)信息中看到圖片的分辨率和大小以及色深,如果圖片不滿足要求的話下載進(jìn)屏幕會(huì)導(dǎo)致屏幕出現(xiàn)黑屏或其他無(wú)法正常顯示的情況。

當(dāng)確定所有的圖片格式后,需要將圖片統(tǒng)一按0x[_xx]的序號(hào)進(jìn)行命名,序號(hào)后的漢字不做要求,可有可無(wú),這里為了方便對(duì)圖片做區(qū)分,選擇添加。

圖片準(zhǔn)備好后, DGUS Ⅱ不支持直接在文件系統(tǒng)中以圖片格式(bmp/jpg)顯示背景,需要將其轉(zhuǎn)換為ICL文件格式。這里使用的DGUS Ⅱ軟件自帶的轉(zhuǎn)換工具即可。

這里引出來(lái)在開(kāi)發(fā)中遇見(jiàn)的一個(gè)大坑點(diǎn),就是關(guān)于迪文DGUS Ⅱ文件系統(tǒng)索引,DGUS Ⅱ?qū)⑾到y(tǒng)flash分為多個(gè)扇區(qū),每個(gè)扇區(qū)的大小是256K,扇區(qū)號(hào)從0開(kāi)始,所有的需要存入屏幕flash的文件都需要用戶手動(dòng)來(lái)確定扇區(qū)大小,其中0號(hào)為默認(rèn)的系統(tǒng)字庫(kù),使用軟件默認(rèn)生成的大小為3011K,按256K一個(gè)扇區(qū)來(lái)算,0號(hào)字庫(kù)占據(jù)12個(gè)扇區(qū),緊接著是系統(tǒng)配置的觸摸文件13、用于數(shù)據(jù)顯示的數(shù)據(jù)文件14以及系統(tǒng)配置文件22。

這三個(gè)文件是系統(tǒng)默認(rèn)生成的,在文件選項(xiàng)卡-單擊生成即可,但請(qǐng)注意,當(dāng)13文件超過(guò)32K后無(wú)法使用B0指令關(guān)閉指定的觸控控件, 并且22文件系統(tǒng)開(kāi)機(jī)是默認(rèn)不加載的,需要在CFG文件中指定開(kāi)機(jī)加載22文件功能。官方默認(rèn)的扇區(qū)號(hào)是有64個(gè),除了這1~14,22號(hào)扇區(qū)用戶不能使用之外,其余的用戶都可以使用,官方有推薦的劃分表,具體可以查看手冊(cè)。

接下來(lái)講需要用戶準(zhǔn)備的,首先就是背景圖文件,其次是圖標(biāo)文件,如果你的工程內(nèi)不需要顯示圖標(biāo)也可以不準(zhǔn)備,再次注意,在官方的歷程中推薦的背景文件扇區(qū)號(hào)是32,圖標(biāo)文件扇區(qū)號(hào)是48,因?yàn)樗麄儦v程中使用的屏幕內(nèi)置FLASH大小是16M的,而手頭這一款屏幕內(nèi)置FLASH只有8M,當(dāng)按照官方推進(jìn)的扇區(qū)號(hào)進(jìn)行開(kāi)發(fā)時(shí)出現(xiàn)字庫(kù)亂碼現(xiàn)象,幾經(jīng)排查無(wú)果,詢問(wèn)技術(shù)支持得知FLASH大小不夠,能用的扇區(qū)只有32個(gè),導(dǎo)致覆蓋掉了FLASH前段的字庫(kù)文件照成了顯示異常,由于圖片ICL與圖標(biāo)ICL占據(jù)不大,將其調(diào)整為23/24號(hào),調(diào)整了默認(rèn)圖片索引后需要在CFG文件中修改圖片起始扇區(qū)號(hào),最終問(wèn)題得到解決。

當(dāng)素材準(zhǔn)備完畢后打開(kāi)DGUS Ⅱ軟件,選擇新建工程,選擇適合自己的屏幕分辨率,進(jìn)入工程后,點(diǎn)擊主頁(yè)左側(cè)?號(hào),進(jìn)行素材的導(dǎo)入,可一次導(dǎo)入多張圖片。

當(dāng)導(dǎo)入圖片過(guò)后,即可在圖片上繪制數(shù)據(jù)顯示位置和顯示方式等,當(dāng)前示例中,假設(shè)數(shù)據(jù)為數(shù)值類型,點(diǎn)擊文本顯示->數(shù)據(jù)變量,在設(shè)定的位置拖放數(shù)據(jù)顯示區(qū)域大小即可。

將需要顯示的數(shù)據(jù)按需求放置完成后,即需要對(duì)每個(gè)數(shù)據(jù)變量進(jìn)行單獨(dú)設(shè)置,這就引出了DGUS Ⅱ系統(tǒng)中另一個(gè)坑點(diǎn)-<變量地址>,是的,DGUS Ⅱ系統(tǒng)中需要用戶來(lái)確認(rèn)每一個(gè)控件的大小和地址,每一種控件的大小并不一致,為了避免麻煩和后期隱患,所以在很多的教程中都是建議直接間隔0x10,例如:

在這里要注意變量類型,需要與最終的呈現(xiàn)效果一致,在這里筆者需要顯示浮點(diǎn)數(shù)并帶一位小數(shù),所以將其設(shè)置為單精度浮點(diǎn)數(shù)即可。

當(dāng)設(shè)置完成后,可以在顯示選項(xiàng)卡-從當(dāng)前頁(yè)開(kāi)始預(yù)覽即可看到效果,但請(qǐng)注意軟件內(nèi)存在bug,不能完全模擬出實(shí)際效果,部分情況下當(dāng)確認(rèn)設(shè)置沒(méi)有問(wèn)題之后,可以將其下載到串口屏內(nèi)查看,配置文件/ICL/字庫(kù)文件可以通過(guò)軟件內(nèi)的串口下載。

但注意串口下載工具不能下載OS程序/CFG文件以及內(nèi)核文件,這類文件均只能使用SD卡進(jìn)行離線更新。SD卡下載需要對(duì)卡進(jìn)行特殊處理且下載時(shí)具有特定的命名規(guī)則,這里建議最好是按他這個(gè)格式要求格式化一次,后續(xù)可以使用Windows的快速格式化功能,直接使用快速格式化有可能屏幕是無(wú)法正常讀取的。

篇幅有限,具體ModBus部分等待后期文章展開(kāi)。

參考資料:

DMT80600C080_01W (dwin-global.com)

迪文屏幕T5L平臺(tái)學(xué)習(xí)筆記零:KEIL環(huán)境搭建-CSDN博客

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
OPI1264A 1 Optotek Ltd Transistor Output Optocoupler, 1-Element, 10000V Isolation
$2.9 查看
ABS06-32.768KHZ-6-1-T 1 Abracon Corporation CRYSTAL 32.7680KHZ 6PF SMD

ECAD模型

下載ECAD模型
$3.17 查看
HFBR-2521 1 Agilent Technologies Inc Receiver, 5Mbps, DIP, Through Hole Mount
$13.26 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜