关于RGB888和RGB565每个像素包含几个字节的疑问

2019-07-20 19:11发布

原子官方手册上的代码:
#if LCD_PIXFORMAT==LCD_PIXFORMAT_ARGB8888||LCD_PIXFORMAT==LCD_PIXFORMAT_RGB888
        ltdc_framebuf[0]=(u32*)&ltdc_lcd_framebuf;
        lcdltdc.pixsize=4;                                //每个像素4字节
#else
    lcdltdc.pixsize=2;                                //每个像素2字节
        ltdc_framebuf[0]=(u32*)&ltdc_lcd_framebuf;
#endif        


对于RGB565格式,很好理解:16位,所以每个像素是2字节。
RGB8888,也很好理解,32位,自然每个像素是4字节。
但是RGB888,,24位,不应该是每个像素是3字节吗????而上面原子的代码,RGB888也是4字节,是什么原因???求解释

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
xkwy
1楼-- · 2019-07-20 20:02
 精彩回答 2  元偷偷看……
shibinjie
2楼-- · 2019-07-20 21:27
 精彩回答 2  元偷偷看……
shibinjie
3楼-- · 2019-07-20 21:28

非常感谢你的仔细解答。学到不少。
但是我是要用这个LCD控制器控制其他器件,不是控制LCD。
所以要知道RGB888一个像素点准确占用几个字节,应该是3个吧
shibinjie
4楼-- · 2019-07-21 03:27
xkwy 发表于 2016-10-31 14:29
其实在ASCII设计时char是占7-bit的,为什么现在char占8bit(1byte)你不觉得有问题?
很简单啊,单片机中简 ...

非常感谢你的仔细解答。学到不少。
但是我是要用这个LCD控制器控制其他器件,不是控制LCD。
所以要知道RGB888一个像素点准确占用几个字节,应该是3个吧
shibinjie
5楼-- · 2019-07-21 04:56
xkwy 发表于 2016-10-31 14:29
其实在ASCII设计时char是占7-bit的,为什么现在char占8bit(1byte)你不觉得有问题?
很简单啊,单片机中简 ...

你好,我现在改成RGB888,每个像素3个字节,能正常显示。但是在写缓冲区的时间内显示是乱的(像老式电视机没有信号时的那样),只有等缓冲区的数据全部写完之后,突然就显示正常了。你能分析大概是什么原因吗

一周热门 更多>