|
5.20的時(shí)候?qū)cGUI V3.9移植到STM32上,后面連著3天都搞不定,要么XOR模式顯示錯(cuò)誤,要么控件殘缺顯示,要么莫名其妙卡死,或者控件對(duì)話(huà)框完全不顯示,一直搞不定,無(wú)奈百度搜索,終于在一個(gè)不起眼的帖子上找到了原因,呵呵,真是絕對(duì)想不到的BUG,印象深刻。】偨Y(jié)一下這幾天的移植心得。
1.移植方法資料很多,找一個(gè)范例去做就是了,比較關(guān)鍵的是LCD的初始化,畫(huà)點(diǎn)函數(shù),讀點(diǎn)顏色函數(shù)一定要正確。我用的STM32F103ZET6+ILI9225的2.0寸(176x220x16bit)TFT,讀點(diǎn)顏色函數(shù)需要加上一些延時(shí),可能是時(shí)序的要求吧。
u16 lcd_GetPoint(u16 x,u16 y)
{
unsigned int a=0;
lcd_SetCursor(x,y);
*(__IO uint16_t *) (Bank1_LCD_C)= 0x0022;
Delay(1);
a=*(__IO uint16_t *) (Bank1_LCD_D); //空操作
Delay(1);
a=*(__IO uint16_t *) (Bank1_LCD_D); //讀出的實(shí)際16位像素?cái)?shù)據(jù)
return(a);
}
2.KEIL編譯ucGUI有BUG,紅框圈的這2個(gè)Group要上移,注意這個(gè)大坑。原帖:http://www.openedv.com/posts/list/8214.htm
 
3.uiGUI文件較多,配置參數(shù)固定下來(lái)之后,最好將ucgui單獨(dú)編譯成一個(gè)lib庫(kù),加到自己的工程中,這樣子編譯很快。
4.ucGUI不要ucOSII的時(shí)候,可以在1ms的定時(shí)中斷中讓OS_TimeMS++,這樣子由GUI_Delay函數(shù)來(lái)刷新界面了。
|
|