本帖最后由 TDA2030 于 2016-8-24 17:31 编辑
上一贴我们已经准备好了STemwin的文件,但是还有一些硬件相关文件没有准备,我们需要一个液晶屏的驱动程序,还有指针输入设备程序,还有一些STM32芯片内部初始化。所以添加完整文件的工程长这个样子:
还有几点要提:
1.我使用的是库函数方式移植的,注意KEIL的设置
2.GUI_X.c文件在OS文件夹中,不使用操作系统使用就添加GUI_X.c
3.在初始化STemwin之前必须开启CRC时钟!
添加完文件就可以编译一次了,会发现有许多错误。解决掉这些错误就成了我们要完成的任务。
首先要明白,我们要使用STemwin需要向它提供底层驱动API,虽然它自带很多驱动但是还是没有我这个液晶的。
开始修改一些文件
range"><1> 修改GUIDRV_Template.C文件向STemwin提供一些函数,最基本的为:
打点函数:void _SetPixelIndex(GUI_DEVICE * pDevice, int x, int y, intPixelIndex)
读点函数:unsigned int _GetPixelIndex(GUI_DEVICE * pDevice, int x, int y)
如果想提高显示速度,我们需要优化一些函数:
矩形填充函数: void _FillRect(GUI_DEVICE * pDevice, int x0, int y0, int x1, inty1)
位图绘制函数:void_DrawBitLine16BPP(GUI_DEVICE * pDevice, int x, int y, U16 const GUI_UNI_PTR *p, int xsize) 修改成这样:
range"><2>修改LCDConf_FlexColor_Template.c文件 这里只需要告诉STemwin我们自己LCD的一些信息,通过修改LCD配置函数:voidLCD_X_Config(void)
range"><3>修改GUIConf.c文件 这里就是给STemwin分配内存,我给了它30KB
range"><4>修改GUIConf.h文件 这是配置STemwin的文件,修改一些宏定义选择需要的功能: 我不需要触摸功能,也没有操作系统,使用鼠标操作指针,支持窗口管理,支持内存设备
range"><5>给GUI_X.c文件添加运行时间 启用一个定时器给STemwin时间:
range"><6>修改启动文件startup_stm32f10x_hd.s 不修改在启用窗口管理时内存不够会卡住
range"><7>添加main.c文件,写一个测试程序 这个时候编译已经没有任何错误了,可以下载测试一下。
我使用的是自己画的板子,STM32F103VET6配一个800*480分辨率的3.5寸屏 工程文件想尽办法压缩到可以上传
上一篇连接: http://bbs.ickey.cn/community/forum.php?mod=viewthread&tid=65632 (出处: ICKEY BBS)
至此STemwin在STM32F1上的移植就差不多完成了,下一次将讲解鼠标键盘等输入设备的接入 敬请期待~ |