cancel
Showing results for 
Search instead for 
Did you mean: 

TouchGFX double framebuffer not switching buffers

nathan_s
Associate

I am working on a gui using an STM32H747I-DISCO connected to an external 640x480 display. The external display does not have a DSI interface, so the DSI-related code in TouchGFX is commented out.
The display works perfectly for static images, but heavily flickers during animations. To fix this, I tried to implement a double buffer, which you can see in the attached ioc image. This didn't fix the flickering, so I did a bit more digging.
I placed a breakpoint in TouchGFXGeneratedHAL::setTFTFrameBuffer (see the breakpoint image) to check the address for each framebuffer swap. What I found was that the address was fixed to the second framebuffer, and did not swap back and forth between the buffers, which you can see in the attached debug variables image. I confirmed the first framebuffer wasn't being used by watching the framebuffers in memory, which showed me that the memory at the first framebuffer location is not being written to.
How do I make the framebuffer switch as intended, and is there anything else I should change to fix the flickering?

1 REPLY 1

Hello @nathan_s ,

Based on the pictures that you have provided, things look alright. Is it possible for you to share your project with us?

You can remove your GUI, so we can only see the interaction with the display.

Looking forward to hearing from you

Mohammad MORADI
ST Software Developer | TouchGFX