После разбора даташита на дисплей создал код
CODE
LtdcHandler.Init.HorizontalSync = 0;
LtdcHandler.Init.VerticalSync = 0;
LtdcHandler.Init.AccumulatedHBP = 44; //HBP+HSYNC-1;
LtdcHandler.Init.AccumulatedVBP = 15; //VSYNC+VBP-1;
LtdcHandler.Init.AccumulatedActiveW = 524;
LtdcHandler.Init.AccumulatedActiveH = 287;
LtdcHandler.Init.TotalWidth = 525;
LtdcHandler.Init.TotalHeigh = 288;
LtdcHandler.Init.Backcolor.Red= 0;
LtdcHandler.Init.Backcolor.Blue= 0;
LtdcHandler.Init.Backcolor.Green= 0;
/* LCD clock configuration */
/* PLLSAI_VCO Input = HSE_VALUE/PLL_M = 25/15 = 1,6667Mhz */
/* PLLSAI_VCO Output = PLLSAI_VCO Input * PLLSAIN = 180 Mhz */
/* PLLLCDCLK = PLLSAI_VCO Output/PLLSAIR = 180/5 = 36 Mhz */
/* LTDC clock frequency = PLLLCDCLK / LTDC_PLLSAI_DIVR_8 = 36/4 = 9 Mhz */
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_LTDC;
PeriphClkInitStruct.PLLSAI.PLLSAIN = 108;
PeriphClkInitStruct.PLLSAI.PLLSAIR = 5;//
PeriphClkInitStruct.PLLSAIDivR = RCC_PLLSAIDIVR_4;
HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct);
/* Polarity */
LtdcHandler.Init.HSPolarity = LTDC_HSPOLARITY_AL;
LtdcHandler.Init.VSPolarity = LTDC_VSPOLARITY_AL;
LtdcHandler.Init.DEPolarity = LTDC_DEPOLARITY_AL;
LtdcHandler.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
HAL_LTDC_Init(&LtdcHandler);
Layercfg.WindowX0 = 0;
Layercfg.WindowX1 = 480;
Layercfg.WindowY0 = 0;
Layercfg.WindowY1 = 272;
Layercfg.PixelFormat = LTDC_PIXEL_FORMAT_ARGB8888;
Layercfg.FBStartAdress = FB_Address;
Layercfg.Alpha = 255;
Layercfg.Alpha0 = 0;
Layercfg.Backcolor.Blue = 0;
Layercfg.Backcolor.Green = 0;
Layercfg.Backcolor.Red = 0;
Layercfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
Layercfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
Layercfg.ImageWidth = 480;
Layercfg.ImageHeight = 272;
HAL_LTDC_ConfigLayer(&LtdcHandler, &Layercfg, LayerIndex);
DrawProp[LayerIndex].BackColor = LCD_COLOR_WHITE;
DrawProp[LayerIndex].pFont = &Font24;
DrawProp[LayerIndex].TextColor = LCD_COLOR_BLACK;
HAL_LTDC_EnableDither(&LtdcHandler);
изображение выводится, но через секунду или меньше ... или больше начинают мерцать точки в буквах и изображениях. Где может быть косяк.
Ау, пожалуйста, отзовитесь специалисты по ТФТ.
Непонятки в настройке области. Почему
Код
Layercfg.WindowX0 = 0;
Layercfg.WindowX1 = 480;
Layercfg.WindowY0 = 0;
Layercfg.WindowY1 = 272;
....
Layercfg.ImageWidth = 480;
а не
Код
Layercfg.WindowX0 = 44; //HBP+HSYNC;;
Layercfg.WindowX1 = 524; //(LCD_PIXEL_WIDTH + HBP+HSYNC - 1);
Layercfg.WindowY0 = 15; //VSYNC + VBP;
Layercfg.WindowY1 = 287 //(LCD_PIXEL_HEIGHT + VSYNC+VBP - 1);
.....
Layercfg.ImageWidth = (480*4)+3; // the length of one line of pixels in bytes + 3 then :
во втором случае выводится бред
Сообщение отредактировал IgorKossak - Jan 6 2017, 18:49
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!