金牌会员
- 积分
- 1367
- 金钱
- 1367
- 注册时间
- 2014-2-13
- 在线时间
- 169 小时
|
本帖最后由 solo 于 2016-5-30 13:46 编辑
硬件环境:战舰开发板103
软件环境:Freertos V8.2.3 + STemWin V5.28
资料主要来自网上,对程序作了一定优化,应该看起来还比较顺眼(ps:原子哥写历程的时候应该注意一下代码规范哦)。STemWin 版本最多的还是5.22,这个5.28是从安富莱那边直接拿来的。感觉5.28移植要比5.22要简单。
一、GUI移植
1、 文件移植:官方下载到的是V5.2.2的,所以不折腾,直接拷贝工程里的文件(V5.2.8)。
2、 底层移植:
参考官方提供的流程图:
⑴ LCDConf.c #define XSIZE_PHYS 480
#define YSIZE_PHYS 320
#define VXSIZE_PHYS 480
#define VYSIZE_PHYS 320
配置液晶的尺寸
⑵ GUIConf.c 配置GUI使用的内存
⑶ GUIConf.h 配置GUI的功能开关
⑷ GUIDRV_Template.c 配置画点函数和读点函数
优化选项:配置画横(竖)线函数、画彩色横线函数、填充函数
⑸ MainTask.c 该文件里创建GUI线程,直接使用
⑹ 注意:使用STemWin必须使能CRC 二、触摸移植
没啥好配置的,直接调用即可。
创建一个扫描线程:
GUI_PID_STATEState;
voidvTaskTaskKEY(void *pvParameters)
{
while(1)
{
tp_dev.scan(0);//扫触摸,1ms
if(tp_dev.sta&TP_PRES_DOWN) //触摸屏被按下
{
if((tp_dev.x< lcddev.width) && (tp_dev.y < lcddev.height)) //限制范围
{
State.x = tp_dev.x;
State.y = tp_dev.y;
State.Pressed = 1;
GUI_PID_StoreState(&State);
}
}
else //触摸屏释放
{
State.x = -1;
State.y = -1;
State.Pressed = 0;
GUI_PID_StoreState(&State);
}
vTaskDelay(1);
}
}
https://git.oschina.net/makosolo/STemWin.git
|
|