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

单步调试

红色

绿色

蓝色

相关推荐
张海森-1688201 小时前
608_demo例子开红外及ir_cut是怎么做的呢
单片机
LongRunning1 小时前
【IDE】KEIL IAR GCC 编译信息
单片机
奋斗者1号1 小时前
paho-mqtt-c + OpenSSL 3.x 连接华为云 IoTDA TLS 握手失败问题分析
c语言·网络·华为云
飞机和胖和黄2 小时前
王道C语言第一周作业
c语言·开发语言
麒qiqi2 小时前
51 单片机入门详解:从基础概念到实战开发
单片机·嵌入式硬件
兆龙电子单片机设计2 小时前
【STM32项目开源】STM32单片机充电桩安全监测系统
stm32·单片机·物联网·开源·毕业设计
周周记笔记11 小时前
ESP32 初识:WiFi MCU 新时代与国产芯片生态(一)
单片机·嵌入式硬件
你怎么知道我是队长11 小时前
C语言---typedef
c语言·c++·算法
带土111 小时前
5. enum(枚举)关键字在C/C++中的作用
c语言·c++
驴友花雕12 小时前
【花雕学编程】Arduino BLDC 之群体机器人协同探索
c++·单片机·嵌入式硬件·arduino bldc·群体机器人协同探索