文章目录
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文章
714浏览量
42772 -
显示控制
+关注
关注
0文章
26浏览量
11071 -
GUI
+关注
关注
3文章
648浏览量
39534 -
emWin
+关注
关注
2文章
37浏览量
13761
发布评论请先 登录
相关推荐
评论