大学生
最后登录1970-1-1
在线时间 小时
注册时间2014-7-4
|
楼主 |
发表于 2014-8-5 19:35:34
|
显示全部楼层
山外メ雲ジ 发表于 2014-8-5 17:54
这个是获取一个像素的值,跟什么的没关系。这个跟读像素的命令有关的。
uint16_t LCD_RD_data(void)
{
uint16_t R=0, G=0, B=0 ;
R = *(__IO uint16_t *)Bank1_LCD_D; /*FIRST READ OUT DUMMY DATA*/
R = *(__IO uint16_t *)Bank1_LCD_D; /*READ OUT RED DATA */
B = *(__IO uint16_t *)Bank1_LCD_D; /*READ OUT BLACK DATA*/
G = *(__IO uint16_t *)Bank1_LCD_D; /*READ OUT GREEN DATA*/
return (((R>>11)<<11) | ((G>>10)<<5) | (B>>11));
}
uint16_t LCD_GetPoint(uint16_t x , uint16_t y)
{
uint16_t temp;
LCD_SetCursor(x, y);
LCD_ILI9341_CMD(0x2e); /* 读数据 */
temp=LCD_RD_data();
return (temp);
}
R,B,G这三个数据是什么意思呢?手册上好像说会连续发送很多数据,第一个是无意义的,其余的数据又是什么作用的?R,B,G这几个16进制数的每一位代表了什么呢?为什么是return (((R>>11)<<11) | ((G>>10)<<5) | (B>>11));这样处理数据的?
|
|