【E1026】战舰移植STemWin V5.28

2021-09-11 09:14:02      索炜达电子      438     

硬件环境:战舰开发板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、  底层移植:

  参考官方提供的流程图:

【E1026】战舰移植STemWin V5.28

⑴    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

TAGSTemWin
  • 2 次
  • 1 分