2019-07-20 12:25发布
zuozhongkai 发表于 2017-6-13 09:54 最高支持RGB8888,但是RGB565也可以带透明的,通过DMA2D来配合。还有LTDC支持什么样的格式书册里面有详细的 ...
最多设置5个标签!
LTDC LCD(RGB屏实验) 这个例程:
void LTDC_Layer_Parameter( u8 layx ,u32 bufaddr,u8 pixformat,u8 alpha,u8 alpha0,
u8 bfac1,u8 bfac2,u32 bkcolor
)
对层参数配置的这个函数中,对混合因子的配置有下面两句话:
pLayerCfg.BlendingFactor1=(u32)bfac1<<8;
pLayerCfg.BlendingFactor2=(u32)bfac2<<8;
第一句对第一个混合因子BF1的配置左移8位没有问题,但是第二句代码对混合因子BF2的配置就有问题了,BF2在寄存器的低3位,坐移8位以后及会覆盖到BF1的配置。可以追踪HAL库最终的配置结果。
这样配置BF2,如果第二层带alpha通道的格式比如用ARGB8888格式,使用 恒定alpha*像素alpha 这个模式感觉没问题,可以正常的混合也有透明效果,但是想使用恒定的alpha混合就会发现,恒定的alpha混合是无效的,第二句代码改成:
pLayerCfg.BlendingFactor2=(u32)bfac2;
就可以。
你测试下例程中这里是不是有这样的bug。
一周热门 更多>