使用stm32F429,内部屏幕驱动器驱动RGB屏,使用EMWIN做界面,直接使用429的刷图函数刷底色显示正常,但是使用GUI_Init();后 到maintask();函数中间,做一些界面显示或者刷背景色屏幕都出现线条,或者条纹,但是进入窗口后即显示正常。
原因:竖屏切换到横屏时 X轴和Y轴必须调换,但是在GUI_Init();中会执行LCD_X_DisplayDriver();函数,该函数中LCD_X_SETSIZE这个选项里面
LCD_X_SETSIZE_INFO * p;
int xPos, yPos;
GUI_GetLayerPosEx(LayerIndex, &xPos, &yPos);
p = (LCD_X_SETSIZE_INFO *)pData;
axSize[LayerIndex] = p->xSize;
aySize[LayerIndex] = p->ySize;
_LTDC_SetLayerPos(LayerIndex, xPos, yPos);
其中
axSize[LayerIndex] = p->xSize;
aySize[LayerIndex] = p->ySize;
为设置分辨率,必须把X轴和Y轴大小对调。
aySize[LayerIndex] = p->xSize;
axSize[LayerIndex] = p->ySize;
即可以显示正常