emWin 移植 - 基於紅牛開發板


一直想利用所學的東西自己設計一個精致一些的作品,手頭正好有一塊紅牛開發板,就先用它來寫一些軟件,熟悉一下過程和一些想法的可行性。首先當然是選擇一個操作系統了,對比了幾種之后選擇了emWin。那就移植一下吧。

這里首先要感謝一下http://www.openedv.com/posts/list/0/27697.htm 這篇帖子。我的思路基本是照着這個帖子做的。感謝樓主把辛苦的研究成果貢獻出來,讓我這個菜鳥能夠快些入門。

 

STemWin下載地址: http://www.st.com/web/en/catalog/tools/PF259225#

 

在ST官方網站上下載好STemWin后 解壓 先使用Libraries文件夾下的STemWinLibrary522 文件夾 復制到項目工程文件夾里

 

然后添加下列文件到工程

修改 LCDConf_FlexColor_Template.c

添加 #include "ili9320.h" 在此之前需要將所使用的液晶屏底層驅動程序寫好。橫豎屏取決於底層的驅動。

注意下面的函數,寫指令和寫數據一般都在液晶驅動的底層有定義,直接添加進來就行了。

static void LcdWriteReg(U16 Data) 
{
  // ... TBD by user
  LCD->LCD_REG = Data;
}

static void LcdWriteData(U16 Data) 
{
  // ... TBD by user
  LCD->LCD_RAM = Data;
}

static void LcdWriteDataMultiple(U16 * pData, int NumItems) 
{
  while (NumItems--) 
  {
    // ... TBD by user
    LCD->LCD_RAM = *pData++;
   }
}

static void LcdReadDataMultiple(U16 * pData, int NumItems) 
{
  *pData = LCD->LCD_RAM;
  while (NumItems--) 
   {
    // ... TBD by user
    *pData++ = LCD->LCD_RAM;
   }
}

 

修改完成后就是建立了emWin與液晶屏的聯系

關於 void LCD_X_Config(void) 函數 (這個我會總結一下后補)續....

 

然后測試GUI顯示是否正常

我用的是ST官網最新的庫函數寫的程序,包括液晶屏的驅動函數都是官方的,所以感覺操作起來要方便一些

主函數內寫如下代碼:

SystemInit();
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_CRC,ENABLE);
LCD_X_Init();
ili9320_Initializtion();
GUI_Init();
GUI_SetColor(GUI_YELLOW);
GUI_DispStringAt("emWin5.22 GUI Complete",80,20);
while(1);

 注意液晶的初始化不要忘了

這樣我在紅牛開發板上就可以正常顯示了(液晶驅動是ILI9320)

然后可以利用GUI.h里面的各種函數顯示想要的東西

具體函數的功能以及如何使用參照emWin用戶手冊上面有詳細的解釋。

下面是幾個API函數在手冊里面可以查找

 數值API:

 文本API:

到此為止我們就完成了初步的液晶底層移植。接下來移植一下演示程序。

 


免責聲明!

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



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