2021-09-11 09:14:02 索煒達電子 691
硬件環(huán)境:戰(zhàn)艦開發(fā)板103
軟件環(huán)境:Freertos V8.2.3 + STemWin V5.28
資料主要來自網上,對程序作了一定優(yōu)化,應該看起來還比較順眼(ps:原子哥寫歷程的時候應該注意一下代碼規(guī)范哦)。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
配置畫點函數和讀點函數
優(yōu)化選項:配置畫橫(豎)線函數、畫彩色橫線函數、填充函數
⑸ MainTask.c
該文件里創(chuàng)建GUI線程,直接使用
⑹ 注意:使用STemWin必須使能CRC
二、觸摸移植
沒啥好配置的,直接調用即可。
創(chuàng)建一個掃描線程:
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