图解RGB888lcd显示屏的像素点显示排布问题

不管是在实际的项目中还是在个人学习中,不管是传统的裸机开发,还是基于 linux 端的开发,都会涉及到 lcd显示屏的章节,通过lcd的直观显示,能为开发者带来方便的交互体验。

lcd显示器的种类繁多,其中比较经典的也是用的最多的有16位RGB565,24位RGB888,当然还有32位的(相较于前两种多了透明度),这里就不多说了,用的最多的还是RGB888,相较于RGB565有着更饱满的色域范围和显示效果。那我们具体该怎么使用呢,下面做下详细的介绍。

要使用它首先的了解它的原理才可以,例如一个显示器的分辨率是 1024~600,那么他一共拥有像素点数为 1024*600=614400 个,我们想要显示一张图片需要将同等大小的图片按照相应的颜色对应进去,如下图所示(手画的,画的不好看哈哈),

左上角是他的起始坐标,我们可以将lcd想象成一个储物柜,在这个储物柜上面有614400个小格子并排均匀分布,横着1024个,竖着600个

每个小个子中用挡板给隔开分成三等份,如下:

在这其中,分别装着RGB三兄弟,注意:大家可不要以为RGB就是按照RGB顺序排列的,恰恰相反,顺序是GBR来着。他们分别保存着各自的颜色R(红色),G(绿),B(蓝),每个颜色占一个字节(8位)总共是24位,要想使用他就往每个抽屉放入适合的颜色就好了。

首先,找到左上角的抽屉中单元格的位置,然后依次往后数就可以了,根据数据手册记载应该起始位置是:起始位置 = 寄存器基地址 + 偏移地址;简单吧

有的同学说我会了,第100行200列对应像素点的位置就是 = 起始位置 + 100*1024 + 200;很显然是错的,正确的应该是:第100行200列对应像素点的位置就是 = 起始位置 + 100*1024*3 + 200*3;因为每三个单元格构成一个像素点

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不会倒的鸡蛋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值