|

楼主 |
发表于 2017-8-2 08:43:29
|
显示全部楼层
回 eric2013 的帖子
图片显示在LTDC_Layer1上 ,初始化代码如下,现在是把LTDC_Layer2设置为ARGB1555,透明度设置为255,显示成现在这样,但是如果把LTDC_Layer2设置成rgb565,并且把图片显示在LTDC_Layer2上,图片显示正常,就是透明度设置好像有问题 void LCD_LayerInit(void)
{
LTDC_Layer_InitTypeDef LTDC_Layer_InitStruct;
LTDC_Layer_InitStruct.LTDC_HorizontalStart = 46;//211;//30;
LTDC_Layer_InitStruct.LTDC_HorizontalStop = (800 + 46 -1);//(800 + 211 - 1);
LTDC_Layer_InitStruct.LTDC_VarticalStart = 23; //24;//4;
LTDC_Layer_InitStruct.LTDC_VerticalStop =( 480+ 23 -1);
/* Pixel Format configuration*/
LTDC_Layer_InitStruct.LTDC_PixelFormat = LTDC_Pixelformat_RGB565;
/* Alpha constant (255 totally opaque) */
LTDC_Layer_InitStruct.LTDC_ConstantAlpha = 255;
/* Configure blending factors */
LTDC_Layer_InitStruct.LTDC_BlendingFactor_1 = LTDC_BlendingFactor1_CA;
LTDC_Layer_InitStruct.LTDC_BlendingFactor_2 = LTDC_BlendingFactor2_PAxCA;
/* Default Color configuration (configure A,R,G,B component values) */
LTDC_Layer_InitStruct.LTDC_DefaultColorBlue = 0;
LTDC_Layer_InitStruct.LTDC_DefaultColorGreen = 0;
LTDC_Layer_InitStruct.LTDC_DefaultColorRed = 0;
LTDC_Layer_InitStruct.LTDC_DefaultColorAlpha = 0;
LTDC_Layer_InitStruct.LTDC_CFBStartAdress = LCD_FRAME_BUFFER;
LTDC_Layer_InitStruct.LTDC_CFBLineLength = ((800 * 2) + 3);
LTDC_Layer_InitStruct.LTDC_CFBPitch = (800 * 2);
/* configure the number of lines */
LTDC_Layer_InitStruct.LTDC_CFBLineNumber = 480;
LTDC_LayerInit(LTDC_Layer1, &LTDC_Layer_InitStruct);
LTDC_Layer_InitStruct.LTDC_HorizontalStart =46;// 211;//210;//30;
LTDC_Layer_InitStruct.LTDC_HorizontalStop =(800 + 46-1 );// 211+800-1;//(800+ 30 - 1);
LTDC_Layer_InitStruct.LTDC_VarticalStart = 23;//22;
LTDC_Layer_InitStruct.LTDC_VerticalStop = (480 + 23-1);
/* Pixel Format configuration*/
LTDC_Layer_InitStruct.LTDC_PixelFormat = LTDC_Pixelformat_ARGB1555;
/* Alpha constant (255 totally opaque) */
LTDC_Layer_InitStruct.LTDC_ConstantAlpha = 255;
/* Configure blending factors */
LTDC_Layer_InitStruct.LTDC_BlendingFactor_1 = LTDC_BlendingFactor1_PAxCA;
LTDC_Layer_InitStruct.LTDC_BlendingFactor_2 = LTDC_BlendingFactor2_PAxCA;
/* Default Color configuration (configure A,R,G,B component values) */
LTDC_Layer_InitStruct.LTDC_DefaultColorBlue = 0;
LTDC_Layer_InitStruct.LTDC_DefaultColorGreen = 0;
LTDC_Layer_InitStruct.LTDC_DefaultColorRed = 0;
LTDC_Layer_InitStruct.LTDC_DefaultColorAlpha = 255;
/* Input Address configuration */
// LTDC_Layer_InitStruct.LTDC_CFBStartAdress = (uint32_t)(&ST_LOGO_2[1200]);//(u32)FrameBuffer;
LTDC_Layer_InitStruct.LTDC_CFBStartAdress = LCD_FRAME_BUFFER + BUFFER_OFFSET;
LTDC_Layer_InitStruct.LTDC_CFBLineLength = ((800 * 2) + 3);
LTDC_Layer_InitStruct.LTDC_CFBPitch = (800 * 2);
/* configure the number of lines */
LTDC_Layer_InitStruct.LTDC_CFBLineNumber = 480;
LTDC_LayerInit(LTDC_Layer2, &LTDC_Layer_InitStruct);
/* LTDC configuration reload */
LTDC_ReloadConfig(LTDC_IMReload);
LTDC_LayerCmd(LTDC_Layer1, ENABLE);
LTDC_LayerCmd(LTDC_Layer2, ENABLE);
/* Set default font */
LCD_SetFont(&LCD_DEFAULT_FONT);
/* dithering activation */
LTDC_DitherCmd(ENABLE);
}
|
|