本帖最后由 fjjjnk1234 于 2015-2-3 23:02 编辑
最近移植了一下emWin5.22,运行了官方的Demo,感觉还存在一些小问题:显示颜色有偏差和运行TreeView Demo的时候,海豚游过的地方残影不能马上消失,不知道是什么原因,哪位前辈能指导一下。16位方式驱动TFT3.2寸屏,ILI9341控制器 先写了一个简单的测试程序,屏幕显示ST-emWin test!,板子上的LED灯1S闪烁一次 主函数:
int main(void)
{
SysTick_Init();
LED_Init();
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_CRC, ENABLE);
GUI_Init();
GUI_DispStringAt("ST-emWin test!", 50, 160);
while(1)
{
GPIO_SetBits(GPIOA, GPIO_Pin_5);
GUI_Delay(1000);
GPIO_ResetBits(GPIOA, GPIO_Pin_5);
GUI_Delay(1000);
}
}
void LCD_X_Config(void) {
GUI_DEVICE * pDevice;
CONFIG_FLEXCOLOR Config = {0};
GUI_PORT_API PortAPI = {0};
//
// Set display driver and color conversion
//
pDevice = GUI_DEVICE_CreateAndLink(GUIDRV_FLEXCOLOR, GUICC_565, 0, 0);
//
// Display driver configuration, required for Lin-driver
//
LCD_SetSizeEx (0, XSIZE_PHYS , YSIZE_PHYS);
LCD_SetVSizeEx(0, VXSIZE_PHYS, VYSIZE_PHYS);
//
// Orientation
//
Config.FirstCOM = 0;
Config.FirstSEG = 0;
Config.Orientation = GUI_MIRROR_Y|GUI_MIRROR_X;
//Config.Orientation = GUI_SWAP_XY | GUI_MIRROR_Y;
Config.NumDummyReads = 2;
GUIDRV_FlexColor_Config(pDevice, &Config);
//
// Set controller and operation mode
//
PortAPI.pfWrite16_A0 = LcdWriteReg;
PortAPI.pfWrite16_A1 = LcdWriteData;
PortAPI.pfWriteM16_A1 = LcdWriteDataMultiple;
PortAPI.pfReadM16_A1 = LcdReadDataMultiple;
GUIDRV_FlexColor_SetFunc(pDevice, &PortAPI, GUIDRV_FLEXCOLOR_F66709, GUIDRV_FLEXCOLOR_M16C0B16);
}
完整程序:(仅供参考,运行了Demo后,感觉程序还存在缺陷)
emWin_basic.rar
(2.02 MB)
运行Demo,存在颜色偏差问题和残影问题
这个例子出现的问题最大
刷屏速度:L:L:L
这个红框没在正中间
完整程序:(仅供参考)
emWin_Demo.rar
(3.15 MB)
哪位朋友知道上述的问题可能是什么原因造成的,麻烦指导一下,谢谢!
|