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;
}

单步调试

红色

绿色

蓝色

相关推荐
superman超哥17 小时前
仓颉语言中锁的实现机制深度剖析与并发实践
c语言·开发语言·c++·python·仓颉
夜月yeyue18 小时前
Linux 调度类(sched_class)
linux·运维·c语言·单片机·性能优化
日更嵌入式的打工仔18 小时前
实用:嵌入式执行时间测量常用方法
笔记·单片机
json{shen:"jing"}19 小时前
1-C语言的数据类型
c语言·c++·算法
dreamczf19 小时前
如何确定项目中的产品选型-物联网设备
单片机·物联网·嵌入式软件
名誉寒冰19 小时前
GDB 调试与 Core Dump(段错误)排查指南(Linux/C/C++)
linux·c语言·c++
Free丶Chan19 小时前
关于KEIL下载提示UnKown CPU(STM32)
stm32·单片机·嵌入式硬件
boneStudent20 小时前
Day35:DMA 原理与架构
stm32·单片机·嵌入式硬件
Vizio<21 小时前
STM32HAL库开发笔记-GPIO输入
笔记·stm32·单片机·嵌入式硬件
硅农深芯21 小时前
什么时候要用开漏输出(open drain output)?
单片机·嵌入式硬件·gpio·开漏输出·open drain