RGB888色彩格式转RGB565格式

一个RGB888格式的色彩值是三字节,有24个bit

一个RGB565格式的色彩值是双字节,有16个bit

将R值的高5位取出,G值的高6位去除,B值的高5位取出,按从高到低的顺序码放在一起后就是RGB565色彩值了

R = (RGB888 & 0xF80000) >> (16+3)

G = (RGB888 & 0x00FC00) >> (8+2)

B = (RGB888 & 0x0000F8) >> (0+3)

RGB565 = (R << 11) | (G << 5) |B

代码如下

cpp 复制代码
uint16_t ST7789_RGB565(uint32_t rgb_888)
{
   uint32_t rgb_565 = 0;
   /* RED */
   rgb_565 |= ((rgb_888 & 0xF80000) >> 8);
   /* GREEN */
   rgb_565 |= ((rgb_888 & 0x00FC00) >> 5);
   /* BLUE */
   rgb_565 |= ((rgb_888 & 0x0000F8) << 0);

   return (uint16_t)rgb_565;
}

单步调试

红色

绿色

蓝色

相关推荐
无小道10 分钟前
c++--typedef和#define的用法及区别
c语言·开发语言·汇编·c++
林内克思40 分钟前
stm32Cubmax的配置
stm32·单片机·嵌入式硬件
互联科技报1 小时前
重振索尼复古微型电脑——计划以OrangePi CM5 作为主板升级
单片机·嵌入式硬件·电脑
敲上瘾1 小时前
传输层协议UDP原理
linux·c语言·网络·网络协议·udp
小林C语言3 小时前
C语言 | 文件读写检测
c语言
c7_ln3 小时前
MYSQL C_API使用全解
c语言·数据库·mysql
天天爱吃肉82184 小时前
从零到一:深度解析汽车标定技术体系与实战策略
python·嵌入式硬件·自动化·汽车
秋说12 小时前
【PTA数据结构 | C语言版】一元多项式求导
c语言·数据结构·算法
暮鹤筠13 小时前
[C语言初阶]操作符
c语言·开发语言
编程墨客16 小时前
STM32F103C8T6单片机内部执行原理及启动流程详解
stm32·单片机·嵌入式硬件