SDRAM中的ARGB8888
↓
LTDC按照ARGB8888解析
↓
分离出A8、R8、G8、B8
↓
Alpha混合
↓
得到最终R8、G8、B8
↓
形成内部24根颜色信号
R7~R0、G7~G0、B7~B0
↓
GPIO只引出高18根
R7~R2、G7~G2、B7~B2
↓
屏幕收到RGB666
LTDC内部有24根独立电线:
红色:
R7 R6 R5 R4 R3 R2 R1 R0
绿色:
G7 G6 G5 G4 G3 G2 G1 G0
蓝色:
B7 B6 B5 B4 B3 B2 B1 B0
当前代码只做了:
R7 R6 R5 R4 R3 R2
G7 G6 G5 G4 G3 G2
B7 B6 B5 B4 B3 B2
这些信号的GPIO复用。
而:
R1 R0
G1 G0
B1 B0
没有进入屏幕。
所以不是LTDC检测到“接了18根线”,而是硬件设计者主动选择了高18位。
SDRAM帧缓冲
↓
LTDC AHB取数单元
↓
LTDC FIFO
↓
像素格式转换
↓
Layer1 / Layer2处理
↓
Alpha混合
↓
背景色
↓
可选Dither
↓
R/G/B输出通道
↓
GPIO复用
↓
屏幕RGB引脚
Alpha不通过RGB屏引脚传输。
Alpha只用于LTDC内部图层混合:
Layer1颜色 × Alpha
+
Layer2或背景颜色 × (1-Alpha)