u16 GUI_GetPoint(u16 xpos,u16 ypos) { LCD_WriteReg(0x20, ypos); LCD_WriteReg(0x21, 319-xpos); if(lcdid==0x4531)return (LCD_ReadRAM()); else return (LCD_BGR2RGB(LCD_ReadRAM())); }
int ili9320_read_pixel(int x, int y) { int value; write_reg(0x0020, x); write_reg(0x0021, y); WMLCDCOM(0x0022); value = ILI9320_DATA_ADDRESS; WMLCDCOM(0x0022); value = ILI9320_DATA_ADDRESS; return LCD_BGR2RGB(value); }
int ili9320_read_pixel(int x, int y) { int value; write_reg(0x0020, x); write_reg(0x0021, y); WR_CMD(0x0022); value = RD_DATA(); WR_CMD(0x0022); value = RD_DATA(); return LCD_BGR2RGB(value); }
//读取个某点的颜色值 //x:0~239 //y:0~319 //返回值:此点的颜色 u16 LCD_ReadPoint(u16 x,u16 y) { u16 t; if(x>=LCD_W||y>=LCD_H)return 0;//超过了范围,直接返回 LCD_SetCursor(x,y); LCD_WR_REG(R34); //选择GRAM地址 GPIOB->CRL=0X88888888; //PB0-7 上拉输入 GPIOB->CRH=0X88888888; //PB8-15 上拉输入 GPIOB->ODR=0XFFFF; //全部输出高 #if LCD_FAST_IO==1 //快速IO LCD_RS_SET; LCD_CS_CLR; //读取数据(读GRAM时,需要读2次) LCD_RD_CLR; LCD_RD_SET; delay_us(2);//FOR 9320,延时2us //dummy READ LCD_RD_CLR; delay_us(2);//FOR 8989,延时2us LCD_RD_SET; t=DATAIN; LCD_CS_SET; #else LCD_RS=1; LCD_CS=0; //读取数据(读GRAM时,需要读2次) LCD_RD=0; LCD_RD=1; //dummy READ LCD_RD=0; LCD_RD=1; t=DATAIN; LCD_CS=1; #endif GPIOB->CRL=0X33333333; //PB0-7 上拉输出 GPIOB->CRH=0X33333333; //PB8-15 上拉输出 GPIOB->ODR=0XFFFF; //全部输出高 if(DeviceCode==0X4535||DeviceCode==0X4531||DeviceCode==0X8989||DeviceCode==0XB505)return t;//这几种IC直接返回颜色值 else return LCD_BGR2RGB(t); }