OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5085|回复: 2

求助大神一个关于LCD实验代码的问题

[复制链接]

1

主题

2

帖子

0

精华

新手入门

积分
26
金钱
26
注册时间
2014-9-26
在线时间
0 小时
发表于 2015-4-2 16:56:28 | 显示全部楼层 |阅读模式
5金钱
u16 LCD_ReadPoint(u16 x,u16 y)
{
  u16 r=0,g=0,b=0;
 if(x>=lcddev.width||y>=lcddev.height)return 0; //超过了范围,直接返回    
 LCD_SetCursor(x,y);    
 if(lcddev.id==0X9341||lcddev.id==0X6804||lcddev.id==0X5310)LCD_WR_REG(0X2E);//9341/6804/3510 发送读GRAM指令
 else if(lcddev.id==0X5510)LCD_WR_REG(0X2E00); //5510 发送读GRAM指令
 else LCD_WR_REG(R34);             //其他IC发送读GRAM指令
  if(lcddev.id==0X9320)opt_delay(2);    //FOR 9320,延时2us    
 if(LCD->LCD_RAM)r=0;       //dummy Read   
 opt_delay(2);  
  r=LCD->LCD_RAM;            //实际坐标颜色
  if(lcddev.id==0X9341||lcddev.id==0X5310||lcddev.id==0X5510)  //9341/NT35310/NT35510要分2次读出
  {
  opt_delay(2);  
  b=LCD->LCD_RAM;
  g=r&0XFF;  //对于9341/5310/5510,第一次读取的是RG的值,R在前,G在后,各占8位
  g<<=8;
 }else if(lcddev.id==0X6804)r=LCD->LCD_RAM;  //6804第二次读取的才是真实值
 if(lcddev.id==0X9325||lcddev.id==0X4535||lcddev.id==0X4531||lcddev.id==0X8989||lcddev.id==0XB505)return r; //这几种IC直接返回颜色值
 else if(lcddev.id==0X9341||lcddev.id==0X5310||lcddev.id==0X5510)return (((r>>11)<<11)|((g>>10)<<5)|(b>>11));//ILI9341/NT35310/NT35510需要公式转换一下
 else return LCD_BGR2RGB(r);      //其他IC
}   
求助各位大神,本人菜鸟,这段代码是LCD显示实验那一节lcd.c文件中的一段代码,主要作用是读取某个点的颜色值,标红的那句我不明白为什么要判断LCD驱动芯片的ID?还有后面那个发送读指令里面参数为什么是0X2E?同样if(lcddev.id==0X5510)LCD_WR_REG(0X2E00);这个参数为什么是0X2E00? ps:原子哥后面的视频讲解代码都没怎么讲,不是说讲的不好,实在是好多代码看不懂啊,求助有什么方法么?谢谢各位了!!!

最佳答案

查看完整内容[请看2#楼]

1,因为不同的LCD,读取GRAM的指令和方式不完全一样,所以要分别判断。 2,0X2E,0X2E00,是数据手册规定的,具体的,请看对应驱动器的数据手册。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-4-2 16:56:29 | 显示全部楼层
1,因为不同的LCD,读取GRAM的指令和方式不完全一样,所以要分别判断。
2,0X2E,0X2E00,是数据手册规定的,具体的,请看对应驱动器的数据手册。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
26
金钱
26
注册时间
2014-9-26
在线时间
0 小时
 楼主| 发表于 2015-4-3 09:12:11 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
谢谢原子哥。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-24 03:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表