| 
 
新手上路 
 
	积分27金钱27 注册时间2016-8-29在线时间12 小时 | 
 
20金钱 
| 新人没钱啊啊啊啊
 最近在尝试,用SSD1963移植STemWIN,买回来才发现网上对SSD1963一致差评。。。。也只能硬着头皮上了。
 
 因为STemWIn自带SSD1963驱动,所以直接使用了自带驱动,而没有用自定义驱动(尝试了一下,自定义驱动速度很慢。两者差距不是一般的大。。)
 [mw_shl_code=c,true]
 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_M565, 0, 0);
 
 LCD_SetSizeEx (0, t_lcddev.width , t_lcddev.height );
 LCD_SetVSizeEx(0, t_lcddev.width , t_lcddev.height );
 
 if(t_lcddev.id == 0x1963)
 {
 if (t_lcddev.dir == 0) //竖屏
 {
 GUI_TOUCH_SetOrientation(GUI_SWAP_XY | GUI_MIRROR_Y);
 GUI_TOUCH_Calibrate(GUI_COORD_X, 0,  800 , 0, 799);
 GUI_TOUCH_Calibrate(GUI_COORD_Y, 0,  480 , 0, 479);
 } else //横屏
 {
 GUI_TOUCH_Calibrate(GUI_COORD_X, 0,  800 , 0, 799);
 GUI_TOUCH_Calibrate(GUI_COORD_Y, 0,  480 , 0, 479);
 }
 }
 else if (t_lcddev.id == 0x9341)
 {
 if (t_lcddev.dir == 0) //竖屏
 {
 GUI_TOUCH_Calibrate(GUI_COORD_X, 0, 240, TOUCH_AD_LEFT, TOUCH_AD_RIGHT);
 GUI_TOUCH_Calibrate(GUI_COORD_Y, 0, 320, TOUCH_AD_TOP, TOUCH_AD_BOTTOM);
 } else //横屏
 {
 GUI_TOUCH_SetOrientation(/*GUI_SWAP_XY |*/ GUI_MIRROR_Y);
 GUI_TOUCH_Calibrate(GUI_COORD_X, 0,  800 , TOUCH_AD_LEFT, TOUCH_AD_RIGHT);
 GUI_TOUCH_Calibrate(GUI_COORD_Y, 0,  480 , TOUCH_AD_TOP, TOUCH_AD_BOTTOM);
 }
 }
 // Orientation
 //
 Config.Orientation = 0 ;//GUI_SWAP_XY | GUI_MIRROR_Y;
 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_F66720, GUIDRV_FLEXCOLOR_M16C0B16);
 [/mw_shl_code]
 
 上面的LcdWriteReg    LcdWriteData  LcdWriteDataMultiple  LcdReadDataMultiple  几个函数直接调用原来的几个现成的寄存器操作的函数。
 [mw_shl_code=applescript,true]void LcdWriteReg(u16 Data)
 {
 WriteCmd_LCD(Data);
 }
 void LcdWriteData(u16 Data)
 {
 WriteData_LCD(Data);
 }
 void LcdWriteDataMultiple(u16 * pData, int NumItems)
 {
 while (NumItems--)
 {
 LcdWriteData(*pData++);
 }
 }
 void LcdReadDataMultiple(u16 * pData, int NumItems)
 {
 while (NumItems--)
 {
 *pData++ = ReadData_LCD();
 }
 
 }[/mw_shl_code]
 
 结果发现光标拖影,实在是不爽,而且在第二个Demo处常常死掉(即使通过显示仍不正常)。不知道怎么解决。
 
 (尝试了一下 ,用自定义的驱动就不会有这么严重的拖影,但还是会用一点。而且在第二个Demo处不会卡死。但问题是刷屏速度极慢。。)
 
 这样就让人很不爽。
 
 还有一个问题是,在按下时,光标会不断的像最左边或上最上边跳。或者跳到左上角。。。作为新人这些问题都不知道怎么办。。
 
 求助大神!!@正点原子  @zuozhongkai  @八度空间
 
 
 
 
 
 
 
 
 
 | 
 |