Skip to main content
Associate II
September 8, 2025
Solved

TouchGFX image rendering issue on STM32H757XIH6 (LTDC ARGB8888)

  • September 8, 2025
  • 2 replies
  • 1042 views

Hi Everyone,
I’m working with a custom 24-bit display on an STM32H757XIH6 MCU.
I’ve configured the LTDC with pixel format ARGB8888.

When I test with solid fill colors, everything displays perfectly.
However, when I try to display an image using TouchGFX Designer, the output appears as repeated, tiled, and shifted blocks instead of the correct image.

I’ve attached a photo of the display for reference.

Has anyone faced this issue before, or could guide me on how to resolve it please Screenshot 2025-09-08 130253.png

 

?

Thank you in Advanceshifted blocksshifted blocks

 

/* LTDC init function */
void MX_LTDC_Init(void)
{

 /* USER CODE BEGIN LTDC_Init 0 */
	HAL_GPIO_WritePin(LCD_BL_GPIO_Port, LCD_BL_Pin, GPIO_PIN_SET);
 /* USER CODE END LTDC_Init 0 */

 LTDC_LayerCfgTypeDef pLayerCfg = {0};

 /* USER CODE BEGIN LTDC_Init 1 */

 /* USER CODE END LTDC_Init 1 */
 hltdc.Instance = LTDC;
 hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
 hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
 hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
 hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
 hltdc.Init.HorizontalSync = 19;
 hltdc.Init.VerticalSync = 2;
 hltdc.Init.AccumulatedHBP = 179;
 hltdc.Init.AccumulatedVBP = 25;
 hltdc.Init.AccumulatedActiveW = 1203;
 hltdc.Init.AccumulatedActiveH = 625;
 hltdc.Init.TotalWidth = 1363;
 hltdc.Init.TotalHeigh = 637;
 hltdc.Init.Backcolor.Blue = 0;
 hltdc.Init.Backcolor.Green = 0;
 hltdc.Init.Backcolor.Red = 0;
 if (HAL_LTDC_Init(&hltdc) != HAL_OK)
 {
 Error_Handler();
 }
 pLayerCfg.WindowX0 = 0;
 pLayerCfg.WindowX1 = 1024;
 pLayerCfg.WindowY0 = 0;
 pLayerCfg.WindowY1 = 600;
 pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_ARGB8888;
 pLayerCfg.Alpha = 255;
 pLayerCfg.Alpha0 = 255;
 pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_CA;
 pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_CA;
 pLayerCfg.FBStartAdress = 0xD0000000;
 pLayerCfg.ImageWidth = 1024;
 pLayerCfg.ImageHeight = 600;
 pLayerCfg.Backcolor.Blue = 0;
 pLayerCfg.Backcolor.Green = 0;
 pLayerCfg.Backcolor.Red = 0;
 if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 0) != HAL_OK)
 {
 Error_Handler();
 }
 /* USER CODE BEGIN LTDC_Init 2 */

 /* USER CODE END LTDC_Init 2 */

}

 

Best answer by rahulz916

The issue was related to the SDRAM clock, but it's been resolved now.

Thanks @LouisB 

2 replies

ST Employee
September 12, 2025

Hello @rahulz916,

Have you check the rest of the configuration according to your screens specs? (In the CubeMX LTDC panel)

BR,

Louis BOUDOST Software Engineer | TouchGFX
rahulz916AuthorAnswer
Associate II
September 15, 2025

The issue was related to the SDRAM clock, but it's been resolved now.

Thanks @LouisB