Skip to main content
MEder
Associate III
April 7, 2020
Question

TouchGFX, STMCube, Converting to Double buffering

  • April 7, 2020
  • 3 replies
  • 1142 views

I have a Newhaven 800x480 display connected to the STM32F746G-DISCO board.

Finally got the display and the touch working. It is currently using a single buffer @ 0xC0000000 SDRAM.

There is some artifacts when the screens change with the cover process. So I want to try double buffering.

However if I change to double buffer using 0xC040000 for the second buffer and add an additional layer I get a warning that only one layer is used and things don't work correctly.

I did regenerate code in the TouchGFX designer.

And TouchgfxGeneratedHal.cpp shows the second buffer.

What did I miss? Ideas?

TIA

This topic has been closed for replies.

3 replies

MEder
MEderAuthor
Associate III
April 7, 2020

After a little thought, I disabled Layer1. Apparently Cube does not know what to do with Layer1.

Just changing from single to double buffering and adding the address was all that was needed.

Thanks

Raouf
ST Employee
April 7, 2020

Hi MEder,

Just for your information: It is recommended to use only one LTDC layer to get the best graphic performances. And of course you can use double buffering technique to get better display visual effects. For further details on graphical performance at system level I strongly recommend to refer to the LTDC application note AN4861.

Kind Regards,

RBEN

Martin KJELDSEN
Principal III
April 20, 2020

TouchGFX Generator will also warn that only 1 layer is supported by TouchGFX (with which you can still use double buffering).

/Martin