|
本人用stm32f407+ili9488(320*480)进行设计一个监护仪界面,平时是用竖屏显示(最大坐标x=320,y=480),在进行波形显示的时候要切换成横屏显示(最大坐标x=480,y=320),但横屏显示的时候发现x坐标只能显示到320,y坐标显示正常。
本想实现的效果如图:
1.竖屏界面,主界面320*480,点击此界面中的WAVE按钮进入波形显示界面,这时切换成横屏。
2,横屏波形显示本要实现的效果,480*320
WAVE界面
3.而实际出来的效果确是这样的
实际效果
横屏右边有部分并没有被绘出来,通过调试,x坐标最大只到319,感觉被限制了。
我在LCDConfig.c中的设置是:
#define XSIZE_PHYS 800
#define YSIZE_PHYS 480
#define VXSIZE_PHYS 800
#define VYSIZE_PHYS 480
#define LCD_CONTROLLER 8875
#define LCD_BITSPERPIXEL 16
#define LCD_USE_PARALLEL_16 0
我的主程序主要流程如下
1 LCD_SetDirection(3); /*设置竖屏显示*/
2 LCD_ClrScr(CL_BLACK); /*全屏清黑*/
3 GUI_Init();
4 WM_SetDesktopColor(GUI_WHITE); /* Automacally update desktop window */
5 WM_SetCreateFlags(WM_CF_MEMDEV); /* Use memory devices on all windows to avoid flicker */
6 hDlg = GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), &_cbCallback, 0, 0, 0); /*创建主界面,竖屏*/
/*参数是: { FRAMEWIN_CreateIndirect, NULL, 0, 0, 0, 320,480,FRAMEWIN_CF_MOVEABLE,0},*/
7 hWinMainWindow = hDlg;
8 hTimer = WM_CreateTimer(WM_GetClientWindow(hDlg), 0, 1000, 0); /*创建定时器*/
while(1){
GUI_Delay(1000);
Kye_Scna(); /*按键处理函数,发现WAVE被按下后会切换到横屏显示,然后创建一个横屏显示的对话框*/
/*横屏对话框的参数:{ FRAMEWIN_CreateIndirect, "WAVE WINDOW", 2, 0, 0, 480,320,FRAMEWIN_CF_MOVEABLE,0},*/
}
通过调试,发现如果在调用 GUI_Init();函数之前,先切换到横屏显示(在1行处调用 LCD_SetDirection(1);),那么横屏显示是正常,但竖屏显示不正常。
如果屏蔽掉GUI_Init();,用自己实现的画线函数,在横屏显示下,从左上角画到右下角ILI9488_DrawLine(0,0,480,320),是可以实现的。给我的感觉是调用GUI_Init()函数时将x坐标和y坐标给限定了
请问哪位高手能否帮我解惑,不胜感激!
file:///C:UsersRDAppDataRoamingTencentUsers1473482744QQWinTempRichOleQBO]]F)VI)K~JRAC)1ZNKMG.png |
|