u16 LCD_ReadPoint()
{
//LCD_SetCursor(x,y);
LCD_WR_REG(0X2E); //9341/
GPIOB->CRL=0X88888888;
GPIOB->CRH=0X88888888;
GPIOB->ODR=0XFFFF;
LCD_RS_SET;
LCD_CS_CLR;
//????(?GRAM?,??????)
LCD_RD_CLR;
delay_us(1);//??1us
LCD_RD_SET;
//dummy READ
LCD_RD_CLR;
delay_us(1);//??1us
r=DATAIN; //??????
LCD_RD_SET;
{
LCD_RD_CLR;
b=DATAIN;//?????
LCD_RD_SET;
g=r&0XFF;//??9341,???????RG??,R??,G??,??8?
g<<=8;
}
LCD_CS_SET;
GPIOB->CRL=0X33333333; //PB0-7 ????
GPIOB->CRH=0X33333333; //PB8-15 ????
GPIOB->ODR=0XFFFF;
value=(((r>>11)<<11)|((g>>10)<<5)|(b>>11));
return value;
}
/********************************************************************
*
* LcdReadDataMultiple
*
* Function description:
* Reads multiple values from a display register.
*/
static void LcdReadDataMultiple(U16 * pData, int NumItems) {
//ili9341读取的第一个数据为无效数据,舍弃(原来没有使用config.numdummyreads参数的时候需要这个语句)
//*pData = ILI9341_RAM;
while (NumItems--) {
*pData++=LCD_ReadPoint();
}
}
这是emWIN底层读接口 我移植了原子大哥ili9341但是 鼠标还是有拖尾的颜色补偿不对。。。
|