http://www.tudou.com/programs/view/S4Cd8DgawE4/
这几天我在学习ucGUI的移植。刚开始我只听说过ucGUI却不曾听说STemWin。STemWin是我在查ucGUI的移植资料过程中不小心发现的。
他们之间的关系,网上的说法就好了,不过我们不必太在意他们之间的区别。不说废话了,直接上移植过程。
1、首先得从网上下载一个STemWin的库文件。网址附上:http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1743/LN1734/PF259225?s_searchtype=partnumber
2、解压出来有一下目录:
这个pdf文件在移植过程中非常重要,接下来得步骤我会结合pdf中得相关内容讲解。大家在移植之前最好还是看一下这个文档Getting started with STemWin Library。这个文档也可以在官网上下载的。
3、因为我用的是stm32f103ZE,..\stemwin\STemWin_Library_V1.1.2\Project\STM3210E-EVAL\Standalone\MDK-ARM打开这个路径下工程文件。然后打开main.C文件看一下main函数的内容。
4、我们需要修改的主要的文件
这个两个。 打开GUIConf_stm3210e_eval.c文件,根据自己的情况设置留给GUI的内存大小。//
// Define the available number of bytes available for the GUI
//
#define GUI_NUMBYTES (1024) * 30 // x KByte 很据自己开发板情况确定给GUI的内存大小,不能太小
剩下的就不要动了。
5、打开LCDConf_stm3210e_eval.C文件。
这个是设置lcd的大小的,我的是7寸的(800*480).
// Config.Orientation = GUI_SWAP_XY | GUI_MIRROR_Y; 这句话是设定镜像的,没有注释之前,我的是竖着看的,我把它注释之后就是横着看了。
pDevice = GUI_DEVICE_CreateAndLink(GUIDRV_FLEXCOLOR, GUICC_565, 0, 0);
GUIDRV_FlexColor_SetFunc(pDevice, &ortAPI, GUIDRV_FLEXCOLOR_F66720, GUIDRV_FLEXCOLOR_M16C0B16);
//参考STemWin5.pdf文件的1002页内容,我的lcd驱动是ssd1963,所以选着GUIDRV_FLEXCOLOR,颜色是16位565。
//1002页中罗列有很多lcd控制器,上面逻辑的控制器的驱动都是集成到STemWin库中了的,我们只需要写个初始化函数就可以用了。
6、初始化lcd控制器
int LCD_X_DisplayDriver(unsigned LayerIndex, unsigned Cmd, void * pData) {
int r;
(void) LayerIndex;
(void) pData;
switch (Cmd) {
case LCD_X_INITCONTROLLER: {
STM3210E_LCD_Init(); //这个就是你要自己写的初始化函数了。
return 0;
}
default:
r = -1;
}
return r;
}
写好初始化函数之后就可以编译下载看效果了。这处理器的速度有点低,显示效果不是很好,但是总得来说移植是成功的,起码步骤对了。
http://www.tudou.com/programs/view/S4Cd8DgawE4/
|