烽火社区

标题: 菜鸟学STemwin的移植之代码【二】 [打印本页]

作者: bobocheng1231    时间: 2016-8-24 04:55 PM
标题: 菜鸟学STemwin的移植之代码【二】
本帖最后由 TDA2030 于 2016-8-24 17:31 编辑

    上一贴我们已经准备好了STemwin的文件,但是还有一些硬件相关文件没有准备,我们需要一个液晶屏的驱动程序,还有指针输入设备程序,还有一些STM32芯片内部初始化。所以添加完整文件的工程长这个样子:
[attach]40935[/attach]

还有几点要提:
1.我使用的是库函数方式移植的,注意KEIL的设置
[attach]40936[/attach]
2.GUI_X.c文件在OS文件夹中,不使用操作系统使用就添加GUI_X.c
[attach]40937[/attach] 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)
修改成这样:
[attach]40938[/attach]
[attach]40939[/attach]
[attach]40940[/attach]
[attach]40941[/attach]
range"><2>修改LCDConf_FlexColor_Template.c文件
这里只需要告诉STemwin我们自己LCD的一些信息,通过修改LCD配置函数:voidLCD_X_Config(void)
[attach]40942[/attach]
range"><3>修改GUIConf.c文件
这里就是给STemwin分配内存,我给了它30KB
[attach]40943[/attach]
range"><4>修改GUIConf.h文件
这是配置STemwin的文件,修改一些宏定义选择需要的功能:
我不需要触摸功能,也没有操作系统,使用鼠标操作指针,支持窗口管理,支持内存设备
[attach]40944[/attach]
range"><5>给GUI_X.c文件添加运行时间
启用一个定时器给STemwin时间:
[attach]40945[/attach]
range"><6>修改启动文件startup_stm32f10x_hd.s
不修改在启用窗口管理时内存不够会卡住
[attach]40946[/attach]
range"><7>添加main.c文件,写一个测试程序
这个时候编译已经没有任何错误了,可以下载测试一下。
[attach]40947[/attach]
[attach]40948[/attach]
[attach]40949[/attach]
[attach]40950[/attach]

我使用的是自己画的板子,STM32F103VET6配一个800*480分辨率的3.5寸屏
工程文件想尽办法压缩到可以上传

上一篇连接:
http://bbs.ickey.cn/community/forum.php?mod=viewthread&tid=65632
(出处: ICKEY BBS)

至此STemwin在STM32F1上的移植就差不多完成了,下一次将讲解鼠标键盘等输入设备的接入
敬请期待~

作者: TonyYU    时间: 2016-8-24 05:12 PM
本帖最后由 TDA2030 于 2016-8-24 17:20 编辑

最后的两张图我都删掉了,不知道为啥还出现在最后…………

总算弄没了





欢迎光临 烽火社区 (https://bbs.cnecport.com/) Powered by Discuz! X3.2