2021-09-11 09:14:02 索煒達(dá)電子 695
硬件環(huán)境:戰(zhàn)艦開發(fā)板103
軟件環(huán)境:Freertos V8.2.3 + STemWin V5.28
資料主要來(lái)自網(wǎng)上,對(duì)程序作了一定優(yōu)化,應(yīng)該看起來(lái)還比較順眼(ps:原子哥寫歷程的時(shí)候應(yīng)該注意一下代碼規(guī)范哦)。STemWin 版本最多的還是5.22,這個(gè)5.28是從安富萊那邊直接拿來(lái)的。感覺(jué)5.28移植要比5.22要簡(jiǎn)單。
一、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使用的內(nèi)存
⑶ GUIConf.h
配置GUI的功能開關(guān)
⑷ GUIDRV_Template.c
配置畫點(diǎn)函數(shù)和讀點(diǎn)函數(shù)
優(yōu)化選項(xiàng):配置畫橫(豎)線函數(shù)、畫彩色橫線函數(shù)、填充函數(shù)
⑸ MainTask.c
該文件里創(chuàng)建GUI線程,直接使用
⑹ 注意:使用STemWin必須使能CRC
二、觸摸移植
沒(méi)啥好配置的,直接調(diào)用即可。
創(chuàng)建一個(gè)掃描線程:
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);
}
}
如果仿真軟件編譯錯(cuò)誤時(shí),可以嘗試如下解決方案:
1.打開該項(xiàng)目的“屬性頁(yè)”對(duì)話框。
2.單擊“鏈接器”文件夾。
3.單擊“命令行”屬性頁(yè)。
4.將 /SAFESEH:NO 鍵入“其他選項(xiàng)”框中,然后點(diǎn)擊應(yīng)用。
5.重新編輯就可以獲取仿真結(jié)果了。
目錄│文件列表:
│ demo.zip
│ 參考資料.zip
└ 軟件.zip