查看: 3933|回复: 1

菜鸟学STemwin的移植之代码【二】

[复制链接] qrcode

38

主题

47

帖子

137

积分

注册会员

Rank: 2

积分
137
发表于 2016-8-24 04:55 PM | 显示全部楼层 |阅读模式
本帖最后由 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上的移植就差不多完成了,下一次将讲解鼠标键盘等输入设备的接入
敬请期待~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

0

主题

78

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2016-8-24 05:12 PM | 显示全部楼层
本帖最后由 TDA2030 于 2016-8-24 17:20 编辑

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

总算弄没了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表