[STemWin教程入門篇]第一期:emWin介紹


特別說明:原創教程,未經許可禁止轉載,教程采用回復可見的形式,謝謝大家的支持。

                  armfly-x2,x3,v2,v3,v5開發板裸機和帶系統的emWin工程已經全部建立,鏈接如下:

                  http://bbs.armfly.com/read.php?tid=1830

SEGGER公司介紹

         了解emWin之前,先了解一下SEGGER這家公司,了解生產商才能對emWin有更加全面的認識。

         SEGGER公司成立於1997年,到現在的2013年,有差不多16年的歷史了,這家公司主要有兩個

office,一個是在德國的Hilden,另個在美國的 Massachusetts。官網還有一個他們工作地方的照片,

看着很不錯,我這里也把這個照片貼上

 

這家公司的產品主要有三個大的方向,下面分別的說一下:

RTOS和中間件

 

embOS  (Real Time Operating System)

embOS/IP  (TCP/IP Stack)

emWin (Graphic Software & GUI)  

emFile (File System)

emUSB Device (USB Device Stack)

emUSB Host (USB Host Stack)

 

 

J-Link Debug Probes

 

 

J - Link PRO

 

J - Link ULTRA+

 

J - Link PLUS

 

J - Link

 

J - Trace Cortex-M3

 

J - Trace ARM

 

 

Production Programmers

 

 

Flasher  ARM

 

Flasher  RX

 

Flasher  STM8

 

Flasher  ST7

 

Flasher  5

 

Flasher  5 PRO

 

 

       官網上面也有一個論壇,不過論壇的打開速度比較的慢,而且是英文的,問個問題也不太方便

http://forum.segger.com/  有興趣的可以去看看。

 

       想了解價格和授權的可以看看這里http://www.segger.com/pricing.html,現在了解的NXP, ST,

Energy Micro獲得了SEGGER的授權,可以免費的使用,想了解其他信息的可以去官網查看,這里有

幾個官網張貼的,客戶設計界面,設計的的確很好看。

 

 

 

 

 

 

其實話說回來,要想設計比較好的界面還是得手工設計,用控件很難做出這種效果,除非有這種效果的控件。

 

本部分設定了隱藏,您已回復過了,以下是隱藏的內容

 

emWin5.xx的簡介

1.  目標系統(硬件)

 

目標系統必須具有:

 

 

• 一個CPU(8/16/32/64位)

 

• 一個具有最小內存的RAM和ROM

 

• 一個完整圖形顯示器 (任何類型和任何分辨率)

 

 

存儲器要求取決於使用的是軟件的哪部分以及目標編譯器的效率。因此不可能指定精確的值,但是以

下值適用於典型的系統。

小系統 (無窗口管理器)

 

 

•RAM:100字節

 

• 堆棧:600字節

 

•ROM:10-25 kb(取決於所使用的功能)

 

 

大系統 (包含窗口管理器和小工具)

 

 

•RAM:2-6 kb(取決於所需的窗口數)

 

• 堆棧:1200-1800字節 (取決於所使用的功能)

 

•ROM:30-60 kb(取決於所使用的功能)

 

 

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

保證能正常使用。

2.  特性

 

emWin設計用於提供高效且獨立於處理器和顯示控制器的圖形用戶界面,用於任何使用圖形顯示進行操作的應用。它與

單任務和多任務環境、專用操作系統或具有任何商業RTOS兼容,emWin的發貨形式為C語言源代碼。它可適用於任何尺

寸的、具有任何顯示控制器和CPU的物理和虛擬顯示器。其特性包括:

一般特性

 

 

 

 支持使用任何控制器的任何 (單色、灰度或彩色)顯示器 (如果有正確的驅動)

 

• 在較小顯示器上無顯示控制器也可運行。

 

 

• 使用配置宏可支持任何接口。

 

• 顯示尺寸可配置。

 

 

• 可在顯示器上的任何點 (而不僅僅是在偶數位字節地址)上寫入字符和位圖。

 

• 已針對尺寸和速度優化了各種例程。

 

 

• 利用編譯時間切換可進行不同優化。

 

• 對於較慢的顯示控制器,可在存儲器中緩存顯示,將存取操作減到最少,從而獲得非常高的速度。

 

 

• 結構清晰。

 

• 支持虛擬顯示;虛擬顯示可大於實際顯示。

 

 

 

圖形庫

 

 

 

• 支持不同色深的位圖。

 

• 可使用位圖轉換器。

 

 

• 絕對無浮點使用。

 

 快速線/點繪制 (不使用浮點)

 

 

 圓形/多邊形繪制非常快速

 

• 不同的繪圖模式。

 

 

 

字體

 

 

 

• 基本軟件配備多種不同的字體:4*6、6*8、6*9、8*8、8*9、8*16、8*17、8*18、24*32

 

  以及像素高度為8、10、13、16的比例字體。有關詳細信息,請參閱字體一章。

 

 

• 可以定義新的字體並只需簡單鏈接。

 

• 只有應用程序使用的字體才實際鏈接到生成的可執行程序,從而使ROM使用最小。

 

 

• 字體可分別在X和Y方向完全縮放。

 

• 可使用字體轉換器;主機系統 (即Microsoft Windows)上有的任何字體都可以轉換。

 

 

   字符串/值輸出例程

 

• 例程可以十進制、二進制、十六進制、任何字體形式顯示值。

 

 

• 例程可以十進制、二進制、十六進制、任何字體形式編輯值。

 

   窗口管理器(WM)

 

 

• 完整的窗口管理操作,包括裁剪。窗口的客戶區以外的區域不可能被覆蓋。

 

• 窗口可以移動和調整大小。

 

 

• 支持回調例程 (可選擇是否使用)。

 

• WM使用最小的RAM(每個窗口大約50字節)。

 

 

 

PC界面外觀的可選小工具• 提供各種小工具 (窗口對象,也稱為控件)。它們通常自動操作並且簡單易用。

   支持觸摸屏和鼠標• 對於按鈕小工具等窗口對象,emWin提供觸摸屏和鼠標支持。

PC工具

 

 

 

• 模擬脈沖查看器。

 

 

• 位圖轉換器。

 

 

• 字體轉換器。

 

 

 

3.  RTOS對emWin的支持     

官方的GUI_X文件里面有各種RTOS對emWin多任務的支持,沒有的話,移植一個也非常的方便,里面沒有

UCOS - III和FreeRTOS的移植,后面現成的添加進去就可以的。

 

 

 

emWin的簡單介紹先說這么多,后面開始講詳細的入門。

4.  基本的內存需求

 

  Example Hello world Window application
ROM GUI core 5.9 kB 43 kB
  Fonts 1.8 kB 12.5 kB
  Application 38 B 2.7 kB
  Startup code 300 B 300 B
  Library 0.1 kB 1.5 kB
  Total 8.1 kB 60 kB
RAM GUI core 62 B 5.2 kB
  Application - 40 B
  Stack 272 B 1.4 kB
  Total 334 B 6.6 kB

 

5.  控件預覽

 

Name Screenshot (classic) Screenshot (skinned) Description
button button which can be pressed. text or bitmaps may be displayed on a button.
checkbox check box which may be checked or unchecked.
dropdown dropdown listbox, opens a listbox when pressed.
edit single-line edit field which prompts the user to type a number or text.
framewin frame window. creates the typical gui look.
graph   graph widget, used to show curves or measured values.
header   header control, used to manage columns.
iconview   icon view widget. useful for icon based plat- forms as found in common hand held devices.
image   image widget. displays several image formats automatically.
listbox   listbox which highlights items as they are selected by the user.
listview   listview widgets are used to creates tables.
listwheel   listwheel widget. the data can be moved and accelerated via pointer input device.
menu   menu widgets are used to create horizontal and vertical menus.
multiedit   multiedit widgets are used to edit multiple lines of text.
multipage   multipage widgets are used to create dialogs with multiple pages.
progbar progress bar used for visualization.
radio radio button which may be selected. only one button may be selected at a time.
scrollbar scrollbar which may be horizontal or vertical.
slider slider bar used for changing values.
spinbox spinning box to display and adjust a specific value.
text [img]http://micrium.com/wp-content/uploads/2012/07/text_classic.png[/img]   static text controls typically used in dialogs.
treeview [img]http://micrium.com/wp-content/uploads/2012/07/treeview_classic.png[/img]   treeview widget for managing hierarchical lists.

 

 


免責聲明!

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



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