cancel
Showing results for 
Search instead for 
Did you mean: 

Having an issue with ghosting images on the display with STM32H747I-DISCO

Paul-To
Associate II

Hello,

I'm currently developing a GUI using TouchGFX version 4.23.0 and have encountered an issue with ghosting images on the display after programming my target device.

Here's a brief overview of my process:

I created a simple GUI project with TouchGFX Designer and generated the code.
I imported the generated code into STM32CubeIDE version 1.14.0 without any issues.
After compiling the code successfully, I downloaded it into my STM32 microcontroller.
When I run the program, the GUI appears on the display, but there is noticeable ghosting of the images. This ghosting effect persists and is quite apparent.

Do you have suggestions on what could be causing this ghosting effect or how to resolve it? Could this be related to the frame buffer, the DMA2D configuration, or perhaps some other timing issue?

Any advice or guidance would be greatly appreciated. Thank you in advance for your help!

Attached with the target GUI and GUI with problem photo.

Paul GUI with problem.jpegtarget GUI.jpeg

3 REPLIES 3
liaifat85
Senior II

Verify the DMA2D configuration settings, especially the transfer mode, pixel format, and destination address.

Paul-To
Associate II

Hi liaifat85,

Thanks for your reply and i am sorry that i am new to the module. Below is the parameter setting of the DMA2D, actually, which one we need to use ? and the destination address mean the start address (it is 0xD00000000).

 

Thanks

Paul

setting.jpg

Paul-To
Associate II

Hi liaifat85,

I confirmed the MX_DMA2D_Init(void) function from the generated code from TouchGFX, the setting can match on the file .ioc and do you have any idea that i need to check.

Thank you very much.

 

Transfer Mode : Register to Memory

Color Mode : RGB888

Ouput Offset : 0 

static void MX_DMA2D_Init(void)
{

/* USER CODE BEGIN DMA2D_Init 0 */

/* USER CODE END DMA2D_Init 0 */

/* USER CODE BEGIN DMA2D_Init 1 */

/* USER CODE END DMA2D_Init 1 */
hdma2d.Instance = DMA2D;
hdma2d.Init.Mode = DMA2D_R2M;
hdma2d.Init.ColorMode = DMA2D_OUTPUT_RGB888;
hdma2d.Init.OutputOffset = 0;
if (HAL_DMA2D_Init(&hdma2d) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN DMA2D_Init 2 */

/* USER CODE END DMA2D_Init 2 */

}