【第3版emWin教程】第3章 emWin介紹


教程不斷更新中:http://www.armbbs.cn/forum.php?mod=viewthread&tid=98429

第3章   emWin介紹

本章主要介紹emWin的基礎知識。

3.1 STemWin,emWin,μCGUI之間的關系

3.2 emWin介紹

3.3 emWin論壇

3.4 總結

 

 

3.1   STemWin,emWin,μCGUI之間的關系

這個放在最開頭進行說明,因為很多的初學者比較迷惑。

3.1.1  emWin和μCGUI的關系

首先要明白,emWin和μCGUI這兩個GUI是同一個東西。最初這個GUI就是SEGGER公司的,然后以什么的方式授權給μCGUI就不清楚了。現在SEGGER公司是這個GUI的主要推動者,已經將其授權給了多個芯片生產廠家。

3.1.2  STemWin和emWin的關系

STemWin是SEGGER公司授權給ST(意法半導體)的。使用ST芯片的用戶可以免費使用STemWin。其實不光授權給了ST,還有NXP,Energy Micro等。凡是使用這些芯片廠商生產的處理器都可以免費的使用emWin。但是出於一定的保護措施,使用STemWin的庫是不能用在其它芯片廠商的處理器上面的。因為在工程初始化STemWin前要使能CRC校驗。如果沒有使能,STemWin是啟動不起來的。

這里STemWin還針對ST的微控制器做了專門的優化,比如在使用ST的F4xx/H7xx微控制器帶FPU的芯片時,STemWin在需要浮點處理的地方專門做了優化。

3.1.3  emWin6.xx版本和以前版本的不同

emWin發展到6.0版本以后進行了很大的更新,特別是性能更強的圖形化創建工具AppWizard。emWin6.xx版本向下完全的兼容低版本,也就是說如果用戶有在emWin6.xx以下版本建立的應用,完全可以在高版本上面實現。

emWin6.xx沒有源碼。想研究源碼的,可以看早期的版本,了解一下消息機制。不過對於大多數從應用角度出發的用戶,完全沒有必要學習源碼,源碼內容太多。一些早期版本無法實現的功能,在emWin6.xx上面得到了很大的改善,支持的控件更多了。如果通過各種方法仍然無法實現,可以使用emWin支持的自定義控件,自定義回調函數或者控件皮膚設置做一個符合要求的。

3.2   emWin介紹

emWin6.xx版本設計出來的界面還是非常漂亮的。為了使大家有一些感官的認識,先來欣賞幾張相關的界面設計圖片。

3.2.1  emWin設計界面

下面是官方提供的應用界面設計效果:

 

 

 

 

 

整體來說,這些界面還是非常漂亮的,不過這些界面不是用專門的控件顯示出來的,而是用2D繪圖配合存儲設備實現的。

 

  •  下面是在開發板上實現的界面效果

更多界面效果看此地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=17330

主界面:

 

音樂播放器界面:

 

視頻播放界面:

 

收音機界面:

 

 示波器界面效果:

http://www.armbbs.cn/forum.php?mod=viewthread&tid=45785

 

 

 

3.2.2  emWin目標系統硬件需求

實現emWin的最基本硬件需求如下:

  •   一個MCU或者MPU(8/16/32/64位)且RAM和Flash大小要滿足emWin最小需求。
  •   一個圖形顯示器 (任何類型和任何分辨率)。

Flash和RAM的使用大小取決於用戶所使用的STemWin的功能以及編譯器的效率。因此不可能指定精確的值,但是以下值適用於典型的系統。

未使用窗口管理器時

  •   RAM:100字節
  •   堆棧:600字節
  •   Flash:10-25 kb(取決於所使用的功能)

使用窗口管理器和控件時

  •   RAM:2-6 kb(取決於所需的窗口數)
  •   堆棧:1200-1800字節 (取決於所使用的功能)
  •   Flash:30-60 kb(取決於所使用的功能)

請注意,如果應用程序使用了很多字體,則對ROM的要求會提高。上述所有值都是粗略估算值,不保證能正常使用。

3.2.3  emWin特性

emWin提供了高效且獨立於處理器和顯示控制器的圖形用戶界面,可用於任何使用圖形顯示進行操作的應用。它與單任務和多任務環境、專用操作系統或任何商業RTOS均兼容,emWin的發布形式為C語言源代碼。它可適用於任何尺寸的、具有任何顯示控制器,不管是物理的還是虛擬的顯示器。其特性包括:

【一般特性】

  •   支持使用任何控制器的任何(單色、灰度或彩色)顯示器 (如果有正確的驅動)。
  •   在較小的顯示器上無顯示控制器也可運行。
  •   使用配置宏可支持任何接口。
  •   顯示尺寸可配置。
  •  可在顯示器上的任何點(而不僅僅是在偶數位字節地址)上寫入字符和位圖。
  •   已經針對尺寸和速度對程序進行了優化。
  •   對於較慢的顯示控制器,可在存儲器中緩存顯示,將存取操作減到最少,從而獲得非常高的速度。
  •   結構清晰。
  •   支持虛擬顯示,虛擬顯示可大於實際顯示。

【圖形庫】

  •   支持不同顏色深度的位圖。
  •  可使用位圖轉換器。
  •  絕對無浮點使用。
  •   快速線/點繪制 (不使用浮點)。
  •  圓形/多邊形繪制非常快速。
  •  不同的繪圖模式。

【字體】

  •  基本軟件配備多種不同的字體:4*6、6*8、6*9、8*8、8*9、8*16、8*17、8*18、24*32以及像素高度為8、10、13、16的比例字體。
  •  可以定義新的字體。
  •  只有應用程序使用的字體才鏈接到可執行程序里,從而使Flash使用最小。
  •  字體可在X和Y方向完全縮放。
  •  可使用字體轉換器,主機系統 (即Microsoft Windows)上有的任何字體都可以轉換。

【字符串/值輸出函數】

  •   函數可以十進制、二進制、十六進制、任何字體形式顯示值。
  •   函數可以十進制、二進制、十六進制、任何字體形式編輯值。

【窗口管理器(WM)】

  •   完整的窗口管理操作,包括裁剪。窗口的客戶區以外的區域不可能被覆蓋。
  •   窗口可以移動和調整大小。
  •   支持回調函數(可選擇是否使用)。
  •   窗口管理器使用最小的RAM(每個窗口大約50字節)。

【PC界面外觀的可選控件】

  •   提供各種控件,它們通常自動操作並且簡單易用。

【支持觸摸屏和鼠標】

  •   對於控件,emWin提供觸摸屏和鼠標支持。

【PC工具】

  •   模擬查看器。
  •   位圖轉換器。
  •   字體轉換器。

3.2.4  RTOS對emWin多任務的支持

基本常見的RTOS都支持emWin的多任務,移植起來也比較簡單,下面這些是官方提供好的移植。

 

這些移植好的接口文件在MDK的安裝目錄里面,以MDK5.34版本為例,所在的路徑為:

\Keil\MDK-Middleware\7.12.0\emWin\Sample\GUI_X。

3.2.5  emWin基本的內存需要

 

這個只是官方提供的基本數據,僅供參考,具體還要看實際應用。

3.2.6  emWin當前支持的控件

由於emWin在不斷的更新當中,這里是當前支持的大部分控件,但不是全部。

 

 

 

 

3.3   emWin論壇

我們有自己建立的論壇版塊:

http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12

當然,SEGGER官方也有自己的emWin論壇,地址:http://forum.segger.com/

3.4   總結

關於emWin的介紹就跟大家介紹這么多,更詳細的可以上我們的論壇進一步討論。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM