Skip to main content
MModi.1
Associate
September 7, 2020
Solved

TouchGFX and STM32CubeIDE integration problem(blank screen)

  • September 7, 2020
  • 7 replies
  • 2410 views

I got TouchGFX integrated into the STM32CubeIDE and successfully compiled.

When I get into debugging and start it all I get is white blank screen.

I got it integrated using template method where I create a configured, but a garbage template to use it only once to get files as shown in this video: https://www.youtube.com/watch?v=12KXreXaLp0&t=177s

Board: STM32F429I-DISC1

STM32CubeIDE version: 1.4.2

TouchGFX version: 4.13.0 and 4.14.0

At first, I started with version 4.10.0 of TouchGFX, and when I changed to 4.13.0 and 4.14.0 there was a lot of difference in generation of files.

Here is the important part I was able to edit all gui files like "Screen<number>.cpp" , "Screen<number>base.cpp" or any View files in Keil MDK-ARM in version 4.10.0 but now the generation has become very complicated and not included in MDK-ARM.

Kindly, make it easier to use on any platform so that any beginner like me can understand and keep on with the development. I am just very curious about the potential of the product but I can't manage to keep going.

This topic has been closed for replies.
Best answer by Alexandre RENOUX

Hello,

In your TouchGFXHAL.cpp and .hpp, you haven't redefined taskEntry()

void TouchGFXHAL::taskEntry()
{
 enableLCDControllerInterrupt();
 enableInterrupts();
 
 OSWrappers::waitForVSync();
 backPorchExited();
 
 LCD_IO_WriteReg(0x29);
 
 for (;;)
 {
 OSWrappers::waitForVSync();
 backPorchExited();
 }
}

If you compare your code with the Application Template, you will see it.

/Alexandre

7 replies

Alexandre RENOUX
Visitor II
September 8, 2020

Hello,

Could you enclose the project to this post ?

Instead of creating your project from scratch, a possibility would be to start with the Application Template for F429-DISCO board in TouchGFX Designer, and then add your modification from there. Maybe you already did, but just in case.

/Alexandre

MModi.1
MModi.1Author
Associate
September 9, 2020
Alexandre RENOUX
Alexandre RENOUXBest answer
Visitor II
September 9, 2020

Hello,

In your TouchGFXHAL.cpp and .hpp, you haven't redefined taskEntry()

void TouchGFXHAL::taskEntry()
{
 enableLCDControllerInterrupt();
 enableInterrupts();
 
 OSWrappers::waitForVSync();
 backPorchExited();
 
 LCD_IO_WriteReg(0x29);
 
 for (;;)
 {
 OSWrappers::waitForVSync();
 backPorchExited();
 }
}

If you compare your code with the Application Template, you will see it.

/Alexandre

MModi.1
MModi.1Author
Associate
September 9, 2020

Thank you very much. I will try and let you know.

MModi.1
MModi.1Author
Associate
September 11, 2020

Thank you so much. It worked. I don't know the reason though why did it happen🤷�?♂�?.

I didn't even touch this directory. If you know it let me know.

Alexandre RENOUX
Visitor II
September 11, 2020

This is mainly due to the line

LCD_IO_WriteReg(0x29);

When configuring the LTDC in main.c, we disable the display. So we need to enable it afterwards if we want to display something. This line is meant to enable the display. And we do this in the task_entry() function that we redefined because it needs to be done after TouchGFX starts.

You can look at the ili9341.c/h driver if you want.

/Alexandre

MModi.1
MModi.1Author
Associate
September 11, 2020

Okay I will see and try to understand ins and outs. Thanks for the light.