Skip to main content
Associate II
September 8, 2025
Solved

TouchGFX image rendering issue on STM32H757XIH6 (LTDC ARGB8888)

  • September 8, 2025
  • 2 replies
  • 692 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,

rahulz916AuthorBest answer
Associate II
September 15, 2025

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

Thanks @LouisB