OpenEdv-开源电子网

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

关于TFTLCD液晶显示

[复制链接]

19

主题

48

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
276
金钱
276
注册时间
2015-5-18
在线时间
26 小时
发表于 2015-11-20 20:31:36 | 显示全部楼层 |阅读模式
5金钱
r=LCD_RD_DATA();     //实际坐标颜色
  if(lcddev.id==0X9341||lcddev.id==0X5310||lcddev.id==0X5510) //9341/NT35310/NT35510要分2次读出
  {
opt_delay(2);  
b=LCD_RD_DATA(); 
g=r&0XFF; //对于9341/5310/5510,第一次读取的是RG的值,R在前,G在后,各占8位
g<<=8;

if(lcddev.id==0X9325||lcddev.id==0X4535||lcddev.id==0X4531||lcddev.id==0XB505||lcddev.id==0XC505)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需要公式转


原子哥,这段代码最后一行我没有读懂啊。   return (((r>>11)<<11)|((g>>10)<<5)|(b>>11))   这一句怎么来的???
假设g=r&0xff   不就是g=r吗???    在转换的时候,假设r的十六位为15.1413.12.11.10.9.8.7.6.5.4.3.2.1.0先处理成了15.14.13.12.11.0.0.0.0.0.0.0.0.0.0.0
然后处理成了15.14.13.12.11.15.14.13.12.11.0.0.0.0.0.0     就是到这里我不明白了,RG不是各占据八位吗???这是怎么处理的???我没有看懂。麻烦解答一下。

最佳答案

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

读出来的RGB各占8位,但是我们要的是RGB565格式的,所以R5,G6,B5共16位。不是有注释说R在前,G在后吗,那么g=r&0xFF就是提出g啊,怎么会g=r呢。r,g,b定义的是16位的,写成g=r&0x00FF应该更好理解吧。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

424

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1020
金钱
1020
注册时间
2014-9-4
在线时间
199 小时
发表于 2015-11-20 20:31:37 | 显示全部楼层
读出来的RGB各占8位,但是我们要的是RGB565格式的,所以R5,G6,B5共16位。不是有注释说R在前,G在后吗,那么g=r&0xFF就是提出g啊,怎么会g=r呢。r,g,b定义的是16位的,写成g=r&0x00FF应该更好理解吧。
https://github.com/WZTENG
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2015-11-20 21:51:59 | 显示全部楼层
楼主需要仔细.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

19

主题

48

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
276
金钱
276
注册时间
2015-5-18
在线时间
26 小时
 楼主| 发表于 2015-11-21 10:42:45 | 显示全部楼层
回复【2楼】WZTENG:
---------------------------------
我懂了。谢谢;
回复

使用道具 举报

19

主题

48

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
276
金钱
276
注册时间
2015-5-18
在线时间
26 小时
 楼主| 发表于 2015-11-21 10:59:21 | 显示全部楼层
回复【2楼】WZTENG:
---------------------------------
抱歉抱歉,我想错了,现在懂了。我把十六进制转二进制计算错了。非常抱歉。麻烦您了、
回复

使用道具 举报

19

主题

48

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
276
金钱
276
注册时间
2015-5-18
在线时间
26 小时
 楼主| 发表于 2015-11-21 10:59:51 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
对对,现在明白了。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-25 15:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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