文章目錄
RA8889與emWin驅動移植指南及顯示優化
在RA8889上使用emWin的優勢
前言
一、獲得emWin Graphic Library
1.1 安裝Keil MDK,在C:Keil_v5ARMSeggeremWin 路徑下獲得emWin library
1.2 在C:Keil_v5ARMSeggeremWinDoc 獲得emWin User&Reference Guide
1.3 獲得RA8889 API 范例程序
二、開始移植
2.1. 新增3個文件夾 emwin_config,emwin_inc,emwin_lib
2.2 建立emwin_config 、 emwin_lib 、 emwin_demo 3個Groups
2.3 以上設定完后,我們編譯時應該會產生以下錯誤:
2.4 emWin GUI 時基源
2.5 分配內存給emWin系統
2.6. GUIDRV_Template.c 修改
2.7 修改LCDConf.c如下圖:
三、在RA8889上使用emWin的優勢
3.1 顯示效果優化
3.2 多緩存應用
總結
RA8889 + emWin Demo 視頻
在RA8889上使用emWin的優勢
為了更好能實現RA8889的功能,如多緩存的應用(內置有128Mbit SDRAM),畫幾何圖形引擎,2D圖形加速引擎(BTE),畫中畫(PIP 實現彈窗利器)、顯示圖片(BMP、JPEG),視頻播放等等功能,我們已在emWin平臺上加入了以上的功能,提高實現顯示效率。
前言
本文在說明如何將瑞佑科技的RA8889(液晶屏控制器TFT LCD Controller)的驅動移植到emWin GUI Library里,實現在emWin平臺上使用RA8889內置的液晶顯示控制功能,以下說明請對照RA8889_API_emwin546_stm32f103_8080IF 范例程序,此范例基于使用RA8889 EV Board板上使用STM32F103VET6 MCU,使用Keil MDK 編譯。
一、獲得emWin Graphic Library
1.1 安裝Keil MDK,在C:Keil_v5ARMSeggeremWin 路徑下獲得emWin library
1.2 在C:Keil_v5ARMSeggeremWinDoc 獲得emWin User&Reference Guide
1.3 獲得RA8889 API 范例程序
獲得RA8889 API 范例程序/RA8889_API_emwin546_stm32f103_8080IF ,請與瑞佑科技深圳分公司瑞福科技的業務員聯系,獲取最新的RA8889_API_Demo_Vxx與RA8889_API_emwin546_stm32f103_8080IF范例。
二、開始移植
RA8889_API_emwin546_stm32f103_8080IF 是由RA8889_API_Demo_Vxx加入emWin Library產生的,以下修改說明請參考RA8889_API_emwin546_stm32f103_8080IF范例程序項目。
2.1. 新增3個文件夾 emwin_config,emwin_inc,emwin_lib
(1) 在 C:Keil_v5ARMSeggeremWinSampleConfig,復制GUIConf.c 、GUIConf.h 、LCDConf.c 、LCDConf.h 4個文件到emwin_config文件夾內。
(2) 在 C:Keil_v5ARMSeggeremWinSampleDisplayDriver,復制GUIDRV_Template.c 文件到emwin_config文件夾內。
(3) 在 C:Keil_v5ARMSeggeremWinSampleGUI_X,復制GUI_X.c文件到emwin_config文件夾內。
(4) 在C:Keil_v5ARMSeggeremWinInclude,復制所有的.h文件到emwin_inc文件夾內。
(5) 在C:Keil_v5ARMSeggeremWinLib,復制GUI_CM3.lib文件到emwin_lib文件夾內。(由于我們的STM32F103是CM3核心,所以選用CM3)。
(6) 在C:Keil_v5ARMSeggeremWinSampleApplicationGUIDemo內,復制全部的文件夾到emwin_demo文件夾內。
2.2 建立emwin_config 、 emwin_lib 、 emwin_demo 3個Groups
打開Keil項目,在Manage Project Items 內建立emwin_config 、 emwin_lib 、 emwin_demo 3個Groups并加入文件,如下圖。
在Option for Target里面的Include Paths 新增3個include paths如下圖。
2.3 以上設定完后,我們編譯時應該會產生以下錯誤:
Error: L6218E: Undefined symbol GUI_X_GetTaskId (referred from gui_task.o).
Error: L6218E: Undefined symbol GUI_X_InitOS (referred from gui_task.o).
Error: L6218E: Undefined symbol GUI_X_Lock (referred from gui_task.o).
Error: L6218E: Undefined symbol GUI_X_Unlock (referred from gui_task.o).
由于本范例不使用OS操作系統,所以我們先忽略這個問題,為了讓編譯可以正常,我們在GUI_X.c內加入這幾個函數,如下圖。
2.4 emWin GUI 時基源
emWin GUI 需要一個時基源并須1ms遞增,即OS_TimeMS變數在GUI_X.c文件內聲明,MCU必須先提供一個1ms的timer tick,通常在Cortex-M由SysTick的設定由SysTick_Handler{}中斷函數去遞增變量來實現,而本文范例采用MCU TIMER中斷來提供1ms的tick,在stm32f10x_it.c內TIM3_IRQHandler()中斷函數實現tick遞增。
2.5 分配內存給emWin系統
在GUIConf.c文件內設定,內存大小會影響效能,須根據MCU的內存大小去配置。
2.6. GUIDRV_Template.c 修改
使用GUIDRV_Template.c 作為新增一個GUI設備的驅動文件,emWin實現屏幕的驅動主要在于寫一個點與讀一個點,我們必須修改static void _SetPixelIndex(GUI_DEVICE * pDevice, int x, int y, LCD_PIXELINDEX PixelIndex)與static LCD_PIXELINDEX _GetPixelIndex(GUI_DEVICE * pDevice, int x, int y)兩個主要函數,如下圖。
引入的putPixel()與getPixel()函數來自RA8889_API.h,在這個范例選用16bit RGB565 或
24bit RGB888 數據格式,參考UserDef.h 選用如下設定:
代碼如下(示例):
支持16bit RGB565 (使用emWin GUICC_M565)
#define Parallel_8080
#define MCU_16bit_ColorDepth_16bpp
代碼如下(示例):
支持 24bit RGB888 (使用emWin GUICC_M888)
#define Parallel_8080
#define MCU_16bit_ColorDepth_24bpp_Mode_2
另外為了優化填充效率,在GUIDRV_Template.c文件新增定義Add2D_Optimize,使用RA8889內建2D繪圖加速功能并增加到_FillRect()、_DrawHLine()、_DrawVLine()函數內,如下圖:
2.7 修改LCDConf.c如下圖:
上述設定完成后,在main.c 加入以下內容,開始運行GUIDEMO。
三、在RA8889上使用emWin的優勢
為了更好能實現RA8889的功能,如多緩存的應用(內置有128Mbit SDRAM),畫幾何圖形引擎,2D圖形加速引擎(BTE),畫中畫(PIP 實現彈窗利器)、顯示圖片(BMP、JPEG),視頻播放等等功能,我們已在emWin平臺上加入了以上的功能,提高實現顯示效率。
3.1 顯示效果優化
利用RA8889內建DRAM與BTE功能取代emWin Memory Device功能,為了更新顯示不閃屏,具體應用可與瑞佑科技聯系;
3.2 多緩存應用
利用RA8889內建 128Mbit DRAM ,分配內存給emWin在RA8889的顯存上操作,即可實現:緩存1用于液晶屏的顯示(即顯示區)、緩存2 用于emWin的讀寫操作內存、另外可分配緩存3、緩存4…等等,比如緩存3可用于顯示掛在RA8889上的Flash的圖片,當需要顯示時,即可用BTE的復制粘貼到顯示區顯示,比如緩存4用作視頻的緩存紐帶,可完美實現emWin窗口+視頻播放的搭配;以上實現具體原理,以及代碼例程,可與瑞佑科技聯系,
總結
使用瑞佑科技的 RA8889 液晶控制器芯片,搭配低端MCU,在emWin平臺上,接高分辨率屏(1366*2048),也可接低分辨率屏,即可做出流暢、酷炫的UI操作界面。
審核編輯:湯梓紅
-
液晶屏
+關注
關注
18文章
719瀏覽量
42901 -
顯示控制
+關注
關注
0文章
26瀏覽量
11089 -
GUI
+關注
關注
3文章
662瀏覽量
39761 -
emWin
+關注
關注
2文章
37瀏覽量
13812
發布評論請先 登錄
相關推薦
評論