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 小时前
PY32F040单片机介绍(1)
单片机·国产mcu·1024程序员节
Lear10 小时前
C语言与C++在基础语法上的区别
c语言
云知谷10 小时前
【经典书籍】C++ Primer 第19章特殊工具与技术精华讲解
c语言·开发语言·c++·软件工程·团队开发
雾岛听蓝10 小时前
C语言:使用顺序表实现通讯录
c语言·数据结构·经验分享·笔记·visualstudio
小龙报11 小时前
《C语言疑难点 --- 字符函数和字符串函数专题(上)》
c语言·开发语言·c++·算法·学习方法·业界资讯·visual studio
趙小贞11 小时前
字符设备驱动开发流程与实战:以 LED 驱动为例
linux·c语言·驱动开发
柒月玖.11 小时前
基于AT89C52单片机的计算器设计与仿真
单片机·嵌入式硬件
傻童:CPU11 小时前
C语言练习题
c语言·开发语言
乐十九12 小时前
物模型详解
嵌入式硬件
czhaii12 小时前
STC32G144K246,高速PWM@240Mhz 运行测试
stm32·单片机·fpga开发