cancel
Showing results for 
Search instead for 
Did you mean: 

TouchGFX and STM32CubeIDE integration problem(blank screen)

MModi.1
Associate II

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.

1 ACCEPTED SOLUTION

Accepted Solutions
Alexandre RENOUX
Principal

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

View solution in original post

7 REPLIES 7
Alexandre RENOUX
Principal

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
Associate II
Alexandre RENOUX
Principal

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
Associate II

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

MModi.1
Associate II

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
Principal

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
Associate II

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