2021-09-11 09:14:02 索炜达电子 692
硬件环境:战舰开发板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);
}
}
如果仿真软件编译错误时,可以尝试如下解决方案:
1.打开该项目的“属性页”对话框。
2.单击“链接器”文件夹。
3.单击“命令行”属性页。
4.将 /SAFESEH:NO 键入“其他选项”框中,然后点击应用。
5.重新编辑就可以获取仿真结果了。
目录│文件列表:
│ demo.zip
│ 参考资料.zip
└ 软件.zip