- //读取个某点的颜色值
- //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
|