初级会员

- 积分
- 169
- 金钱
- 169
- 注册时间
- 2014-12-21
- 在线时间
- 1 小时
|
发表于 2015-1-25 12:16:47
|
显示全部楼层
我不懂你说的18/16是什么,我没看过datasheet,这里仅是个人臆测:
RGB模式下 一个色是6个bit,也就一共18bit,18bit与我们常说的8比特一字节不一致,会导致大量的空间无用,你定义3个字节来保存一个像素点颜色,就会浪费6bit。每个字节代表一个颜色,这样刚好用3字节,就是全色彩,但低端屏幕不需要那么高显色。
最后使用了565的分配方式,每个颜色占5或者6个bit,可能你这里就是这样的。这样两个字节代表一个像素点。
有些液晶屏支持888模式,也就是3个字节,这样就是完整的真彩屏,但是为了兼容,会留给你一个寄存器去选择565还是888或者灰阶模式。
最后要说的是,你去纠结那个没意义,是内部自己分配的,18bit是LCD 控制读取到的数据,因为要合成完整的666色彩。而565是为了方便你使用mcu时省空间。
可以发现,5bit最大表示32,6bit则是64,如果不对齐成666,会使颜色不一致,G是0~63,而R却只能到31。所以,你写进去16个bit,会被对齐成18bit。数据在LCD控制器内部被对齐。
再次说明,以上仅个人臆测。本人新手,信与不信请认真考量。 |
|