新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 干貨:如何快速開發嵌入式系統的交互界面?

        干貨:如何快速開發嵌入式系統的交互界面?

        作者: 時間:2018-10-18 來源:網絡 收藏

          工業產品的交互界面開發要求越來越接近于消費領域的產品。選擇一種快速且低成本的嵌入式UI開發方案顯得尤為重要,本文將為您介紹一種新的框架式嵌入式UI開發平臺。

        本文引用地址:http://www.104case.com/article/201810/393059.htm


          1 . 串口屏

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


          圖1 簡單串口屏

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


          圖2 組態串口屏(圖片來源網絡)

         2 . 嵌入式QT/E

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


          圖3 嵌入式Linux QT/E界面開發

          3 . 嵌入式emWin

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

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


          圖4 emWin_Demo

          4 . AWUI&AWTK

          emWin說明書有一千多頁,對于大多說開發者來說只是想使用emWin做個交互界面,需要花費大量的時間學習emWin的API。

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


          圖5 AWUI的框架思想

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

          基于AWUI,致遠電子計劃年內推出適用范圍更廣、更好用的AWTK。嵌入式UI開發將會以組件的方式集成于AWorks平臺中,可在該平臺下快速實現交互界面開發。


          圖6 AWUI發展計劃


          圖7 AWorks中的UI框架



        關鍵詞: 嵌入式系統 UART

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 聂拉木县| 邹平县| 从化市| 江华| 霸州市| 托克逊县| 揭阳市| 闽清县| 潞西市| 瑞安市| 兴宁市| 九台市| 安塞县| 哈密市| 长乐市| 咸宁市| 信阳市| 福贡县| 天镇县| 麻阳| 英吉沙县| 涟水县| 积石山| 洛浦县| 合山市| 五大连池市| 韶山市| 邵阳市| 宁晋县| 温泉县| 祁阳县| 屏东县| 长葛市| 紫云| 三门县| 申扎县| 南开区| 安福县| 遵义市| 新源县| 朝阳区|