cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H747I-DISCO TouchGFX Project – Display Not Updating After Code Changes

rabbani_sk
Associate II

Hi Community,

I’m working on an STM32H747I-DISCO board and trying to build a simple application using TouchGFX.
I created an analog clock widget in TouchGFX Designer and successfully flashed it to the board. The clock displayed correctly on the LCD.

However, when I modify the project (for example, changing UI elements or logic) and reflash it, the display does not update to reflect my changes.
I am trying to develop application on analog clock which reads time through internal RTC and update in clock and it is failing.

I’m looking for guidance on:

  1. Understanding how dual-core microcontrollers (like the STM32H747I with Cortex-M7 and Cortex-M4) handle TouchGFX applications.

  2. The correct procedure to flash TouchGFX-based projects after modifications, so that updates are reflected on the display.

Any tips, explanations, or step-by-step guides would be really helpful.

Thanks in advance!

 

 

4 REPLIES 4
Kenwang
Associate III
mathiasmarkussen
ST Employee

You should be able to flash the code the same way you originally did. If in doubt, you can always use the "Run Target" button in Designer, if you are using a supported Discovery Kit.

For dual core MCU's, the TouchGFX application is running on the faster core, and does not interact with the other core at all.

How have you changed the project? Are you modifying it visually in TouchGFX designer, or are you using code?

Feel free to share your project, that may make it easier to find the problem.

Hi mathiasmarkuessen,

I am working on a project with TouchGFX Designer and STM32CubeMX. Like you said I can flash the code generated directly from TouchGFX Designer without any problem. However, when I try to integrate my own custom code into the project, I face an issue right at the beginning.

Specifically:

  • If I enable a certain setting(below image) in CubeMX and then generate the code, the LCD fails to initialize.
  • If I disable that setting and regenerate the code, the LCD initializes correctly and everything works.

pic4_edited.png

I will share two project files

  • One with the setting enabled (LCD not working).
  • One with the setting disabled (LCD working).

Could you please help me understand the difference between these two cases and why the LCD initialization fails when the option is enabled?



I see. This option splits out the code that CubeMX generates for initialization into separate files for each peripheral.

The reason that this does not work is that the setting does not preserve user code, which is used to, among other things, initialize the display.

If you strongly prefer to split the code, you can make it work. In that case, you should copy main.c before enabling the setting, and then after regenerating code with the setting enabled, go through the original main.c and place the code from each user code section throughout that file into the correct place in the new project structure.