2025-09-28 7:50 AM - edited 2025-09-28 7:51 AM
Hello,
I am trying to use Nucleo-H563ZI with SPI display (ILI9431) with Single Frame buffer but i couldn't configure it and didn't find appropriate example. Do anyone have used SPI display with Single Frame Buffer? Any help would be great.
I do have sufficient space to implement single Frame Buffer. I am lacking knowledge for implementation.
I have successfully used partial frame buffer but there was a problem, whenever i used .invalidate() to update textArea other box flicker in the display. On the partial frame buffer i used SPI with DMA.
Thank you
kind regards,
Binod Basnet
2025-09-30 2:37 AM
Hello @bbasnet.
For an example of how to use a single framebuffer, I would recommend you to look at the NUCLEO-U575ZI + RVA35HI TBS available in TouchGFX Designer. This project uses FMC to transfer data to the display; however, the concept is similar to SPI. The TBS is configured to use optimized single framebuffer.
Refer to the following articles for additional information:
https://support.touchgfx.com/4.26/academy/how-to/single-framebuffer
https://support.touchgfx.com/4.26/docs/basic-concepts/framebuffer#framebuffer-strategies
https://support.touchgfx.com/4.26/docs/development/touchgfx-hal-development/scenarios/scenarios-spi
Could you share a video of the flickering you are experiencing with partial framebuffer? Does it occur only when running on target, or does it also happen when running the simulator?
Best regards,
Johan
2025-09-30 3:35 AM
Hello @JohanAstrup ,
Thank you so much for your response. I will check the links you have mentioned and try to follow it.
I have shared the video of flickering, its not so clear in video. My implementation code is below. The text doesn't flicker but boxes do. It happens when i use ".invalidate()". In case of not using ".invalidate()" to update text the boxes doesn't flickers.
I have tried same project with using STM32F411E-Disco (SPI + DMA + partial Framebuffer) there was not any problem, maybe i am missing something with configuration in Nucleo-H563ZI.Thank you.
Kind regards,
Binod Basnet
void screenView::handleTickEvent()
{
counter++;
Unicode::snprintf(textArea1Buffer, TEXTAREA1_SIZE, "%d", counter);
textArea1.invalidate();
if(counter == 100000)
{
counter = 0;
}
}