使用8位色的优势是使用H7的内部SRAM即可驱动大分辨率显示屏,而且很多控制类的应用,8位色足够用。
通过0到255的索引值实现24bit颜色的互转,即1个索引值对应一个24bit颜色值,然后将这256个颜色值存储到LTDC的LUT寄存器里面。
uint32_t LCD_Index2Color_233(uint32_t Index)
{
uint32_t r, g, b;
r = (Index & 7) * 255 / 7;
g = ((Index >> 3) & 7) * 255 / 7;
b = ((Index >> 6) & 3) * 85;
return b + (g << 8) + (((uint32_t)r) << 16);
}
uint32_t LCD_Color2Index_233(uint32_t Color)
{
int r, g, b;
b = Color & 255;
g = (Color >> 8 ) & 255;
r = Color >> 16;
b = (r * 7 + 127) / 255;
g = (g * 7 + 127) / 255;
r = (b + 42) / 85;
return b + (g << 3) + (r << 6);
} |