//读取个某点的颜色值
//x:0~239
//y:0~319
//返回值:此点的颜色
u16 LCD_ReadPoint(u16 x,u16 y)
{
u8 m=0,n=0;
u16 t=0;
if(x>=239||y>=319)return 0;//超过了范围,直接返回
Init_data(0X0020,x);
Init_data(0X0021,y);
Write_Cmd (0x00,0x22); //选择GRAM地址
DB_DDR->DDR = 0X00;//输入模式
DB_DDR->CR1 = 0XFF;//上拉输入
DB_DDR->CR2 = 0X00;//禁止外部中断
// GPIOD->ODR = 0XFF; //全部输出高
WR_SET;
RS_SET;
CS_CLR;
RD_SET;
RD_CLR;
m = GPIOD->IDR;
RD_SET;
asm("nop");
asm("nop");
RD_CLR;
n = GPIOD->IDR;
RD_SET;
CS_SET;
//设置PD为输出
GPIOD->DDR = 0XFF;//输出模式
GPIOD->CR1 = 0XFF;//推挽输出
GPIOD->CR2 = 0XFF;//最大输出速度为10M
t=(u16)((m<<8)+n);
// return LCD_BGR2RGB(t);
return t;
}
file:///C:/Documents |