cancel
Showing results for 
Search instead for 
Did you mean: 

No images on Screen - TouchGFX on STM32H743VIT6 with custom LTDC 2.1" Round LCD

Emre2blue
Associate II

hi,

  I've installed the TouchGFX and I could compile it without any error. I did some images and buttons and only one screen inside TouchGFX Designer I could Generate code, and I could simulate it without any problem. But after compile the project, and upload the project in CubeIDE, I don't see any image in LCD.

* First I've check the framebuffer, if it could be allocated properly. And I think it is.

Emre2blue_1-1710860298465.png

* I've checked the LTDC setup

 

pLayerCfg.WindowX0 = 0;

pLayerCfg.WindowX1 = 480;

pLayerCfg.WindowY0 = 0;

pLayerCfg.WindowY1 = 480;

pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;

pLayerCfg.Alpha = 255;

pLayerCfg.Alpha0 = 255;

pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_CA;

pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_CA;

pLayerCfg.FBStartAdress = 0x2400010c;

pLayerCfg.ImageWidth = 480;

pLayerCfg.ImageHeight = 480;

pLayerCfg.Backcolor.Blue = 150;

pLayerCfg.Backcolor.Green = 100;

pLayerCfg.Backcolor.Red = 200;

 

I made sure that I've the correct address of the framebuffer.

 

* The main.c code is generated automatically  so I did not touch anything

int main(void)

{

SCB_EnableICache();

HAL_Init();

 

/* Configure the system clock */

SystemClock_Config();

 

/* Configure the peripherals common clocks */

PeriphCommonClock_Config();

 

/* Initialize all configured peripherals */

MX_GPIO_Init();

MX_LTDC_Init();

MX_SPI1_Init();

MX_SPI6_Init();

MX_SPI4_Init();

MX_QUADSPI_Init();

MX_DMA2D_Init();

MX_JPEG_Init();

MX_FATFS_Init();

MX_LIBJPEG_Init();

MX_CRC_Init();

MX_RNG_Init();

MX_TouchGFX_Init();

/* USER CODE BEGIN 2 */

 

LCD_init();

 

MX_LTDC_Init();

 

while (1)

{

/* USER CODE END WHILE */

MX_TouchGFX_Process();

/* USER CODE BEGIN 3 */

}

/* USER CODE END 3 */

 

}

 

Where should I check too ?

 

6 REPLIES 6
Emre2blue
Associate II

Emre2blue_0-1710953377117.png

I've found that Board Setup is N/A. Does it have to do with blank screens?

Hello @Emre2blue ,

Are you using the Board Setup that is available in TouchGFX, or, have you created a custom project from ground up? 

If you are using a custom project, can you first confirm that your display is set up correctly and that you can show a simple color on it?

There are plenty of documentations about the process available here 

Also, having TouchGFX Board Setup set to N/A, does not cause any issues, so, don't worry about that.

 

Best regards,

Mohammad MORADI
ST Software Developer | TouchGFX

hi,

I’m using WeACT Studio STM32H743VIT6 miniBoard. I don’t have SDRAM or EXTERNAL stuff. I could use External QSPI 8MB FLASH and SD-Card interface soon after. I’ve bought a board from WeACT Studio. Card runs good, LTDC configured and a test framebuffer runs. I can picture 480x480 RGB565 images from Flash to the screen. All the codes ported from arduino examples of LCD. I use AdaFruit’s RGB666 480x480 2.1 Round LCD 

When I want to debug the program It freezes after some times. so I could not see what is what. Also I'm not happy d that the TouchGFX module is not transmitting the FRAMEBUFFER location/address to the LTDC module. I had do find the address and set it manually. But anyway, Since I've post the problem here. I could not get any pictures yet. CubeIDE updated I've checked my project. but Still not image.

Okay, I see. 

A good place to start investigating is to ensure the framebuffer is filled correctly. I am a bit confused by your statement that you had to find the address manually. When you are using LTDC, you don't need to manage the communication between TouchGFX and the display through the display drivers. TouchGFXHAL is responsible for that, and if you need to make changes, they should be applied there. As for the address of the framebuffer, you can either specify the address directly from the STM32CubeMX project under Middleware and Software Packs -> X-CUBE-TOUCHGFX -> Display-> Buffer Location (setting it to By Address), or from the linker script (which requires setting the Buffer Location to By Allocation).

Framebuffer locationFramebuffer location

 

Then you need to generate the code from STM32CubeMX again.
I suggest you start with an extremely simple UI (like having only one green box), check if the framebuffer contains the correct value, and then move on to a more complex project.

 

Mohammad MORADI
ST Software Developer | TouchGFX

Hello @Emre2blue ,

Have you made any progress regarding this ticket?

Mohammad MORADI
ST Software Developer | TouchGFX

I'm closing this ticket due to inactivity 

Mohammad MORADI
ST Software Developer | TouchGFX