|
5.20的時候將ucGUI V3.9移植到STM32上,后面連著3天都搞不定,要么XOR模式顯示錯誤,要么控件殘缺顯示,要么莫名其妙卡死,或者控件對話框完全不顯示,一直搞不定,無奈百度搜索,終于在一個不起眼的帖子上找到了原因,呵呵,真是絕對想不到的BUG,印象深刻啊!總結一下這幾天的移植心得。
1.移植方法資料很多,找一個范例去做就是了,比較關鍵的是LCD的初始化,畫點函數,讀點顏色函數一定要正確。我用的STM32F103ZET6+ILI9225的2.0寸(176x220x16bit)TFT,讀點顏色函數需要加上一些延時,可能是時序的要求吧。
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); //讀出的實際16位像素數據
return(a);
}
2.KEIL編譯ucGUI有BUG,紅框圈的這2個Group要上移,注意這個大坑。原帖:http://www.openedv.com/posts/list/8214.htm
 
3.uiGUI文件較多,配置參數固定下來之后,最好將ucgui單獨編譯成一個lib庫,加到自己的工程中,這樣子編譯很快。
4.ucGUI不要ucOSII的時候,可以在1ms的定時中斷中讓OS_TimeMS++,這樣子由GUI_Delay函數來刷新界面了。
|
|