<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 開(kāi)發(fā)嵌入式系統的交互界面很難嗎?教你一招快速搞定

開(kāi)發(fā)嵌入式系統的交互界面很難嗎?教你一招快速搞定

作者: 時(shí)間:2018-09-26 來(lái)源:網(wǎng)絡(luò ) 收藏

  工業(yè)產(chǎn)品的交互界面開(kāi)發(fā)要求越來(lái)越接近于消費領(lǐng)域的產(chǎn)品。選擇一種快速且低成本的嵌入式UI開(kāi)發(fā)方案顯得尤為重要,本文將為您介紹一種新的框架式嵌入式UI開(kāi)發(fā)平臺。

本文引用地址:http://dyxdggzs.com/article/201809/392302.htm

  1 . 串口屏

  串口屏是指可以通過(guò)串口指令控制其顯示的屏幕,如UART(TTL、232、485)、SPI等。若控制引腳較多且之間間存在一定的時(shí)序關(guān)系則統稱(chēng)為并口屏。串口屏所有的繪圖、顯示及人機交互都是依靠MCU與串口屏之間的指令、數據傳輸。串口屏最大的優(yōu)點(diǎn)就是開(kāi)發(fā)便利且大大減少了主控芯片的IO口占用,但為了實(shí)現更豐富的顯示效果,串口屏內部需要集成高性能的為處理器,這也使得串口屏的價(jià)格比裸屏高出很多。

圖1 簡(jiǎn)單串口屏

  2010年以前的串口屏大多是通過(guò)上位機將要顯示的內容預先下載到屏幕中,然后發(fā)送預設指令將各種界面顯示出來(lái)。2014年后,功能更強大的組態(tài)屏使串口屏的產(chǎn)業(yè)鏈日趨成熟。由于串口屏的顯示依賴(lài)其自帶的庫,所以其顯示靈活度在一定程度上依舊受限。

圖2 組態(tài)串口屏(圖片來(lái)源網(wǎng)絡(luò ))

  2 . 嵌入式QT/E

  相比于直接使用串口屏,嵌入式的QT/E的靈活度、自由性極大豐富。嵌入式的QT/E可以認為是QT在linux上的的精簡(jiǎn)版,它在底層摒棄了Xlib庫以適應嵌入式應用的開(kāi)發(fā)。使用 Qt 只需一次性開(kāi)發(fā)應用程序,無(wú)需重新編寫(xiě)源代碼,便可跨不同桌面和嵌入式操作系統部署這些應用程序。

圖3 嵌入式Linux QT/E界面開(kāi)發(fā)

  3 . 嵌入式emWin

  使用QT/E往往需要在微控制器上運行嵌入式操作系統,因此對于MCU的性能有一定的要求。除此之外,若之前未接觸過(guò)QT/E,運用起來(lái)將花費一定的時(shí)間成本。相比之下,emWin更適合于快速、精簡(jiǎn)UI的開(kāi)發(fā)。

  emWin圖形庫由德國SEGGER公司開(kāi)發(fā),可為圖形LCD設計提供高級支持,極大簡(jiǎn)化了LCD設計并縮短上市時(shí)間。為恩智浦ARM微控制器用戶(hù)免費提供的emWin圖形庫,以其免費提供商業(yè)圖庫、使用簡(jiǎn)單、提升MCU運行表現和色彩逼真。

圖4 emWin_Demo

  4 . AWUI&AWTK

  emWin說(shuō)明書(shū)有一千多頁(yè),對于大多說(shuō)開(kāi)發(fā)者來(lái)說(shuō)只是想使用emWin做個(gè)交互界面,需要花費大量的時(shí)間學(xué)習emWin的API。

  為了使emWin更易用,致遠電子在emWin基礎上開(kāi)發(fā)出AWUI,它是基于C++開(kāi)發(fā)的一套MVVM框架,實(shí)現了數據綁定、命令綁定和窗口導航等基本功能,并提供豐富的GUI組件。AWUI相對于直接用emwin編程是巨大的飛躍, 因為它使用mvvm編程模型使得界面與邏輯分離(解耦)。MVVM是由MVC和MVP一路演化而來(lái),它的作用就是實(shí)現用戶(hù)界面和業(yè)務(wù)邏輯的分離,利于隔離變化、自動(dòng)測試、分工合作。

圖5 AWUI的框架思想

  AWUI目前支持Qt和emWin,用Designer編輯界面,用C++開(kāi)發(fā)ViewModel/Model,讓開(kāi)發(fā)者無(wú)需學(xué)習Qt和emWin的API最終的應用程序可以在Qt和emWin(要確保emWin上支持該控件)上運行。

  基于A(yíng)WUI,致遠電子計劃年內推出適用范圍更廣、更好用的AWTK。嵌入式UI開(kāi)發(fā)將會(huì )以組件的方式集成于A(yíng)Works平臺中,可在該平臺下快速實(shí)現交互界面開(kāi)發(fā)。

圖6 AWUI發(fā)展計劃

圖7 AWorks中的UI框架



關(guān)鍵詞: 嵌入式系統

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>