2021-09-23 05:51 AM
Hi!
This might be a long shot but I'm having some rendering issues with the flex button and slider on my device.
Everything works perfectly in the touchgfx simulator however I'm getting a weird image glitch once a button has been released on the actual hardware. Additionally the buttons glitch in the exact same way every time which makes me think something internally is accessing the framebuffer when it shouldn't be.
I've attached two videos demonstrating the issue. One of them I have slowed the system clock right down so that the issue is clearly visible.
My setup:
Custom SPI display
No OS
Dual Frame buffer
DMA2D enabled
Internal flash & Ram
NUCLEO-F767ZI
I've been wracking my brain for the last two weeks trying to figure this out so any pointers in the right direction would be much appreciated! Cheers
Solved! Go to Solution.
2021-09-26 07:57 PM
Ok I figured it out finally. It was a silly mistake on my part. I was sending the pointer to the first pixel in the frame buffer to the screen even though flushFrameBuffer was actually only sending a partial update to the screen. I should have been sending the first pixel of the updated area instead of the entire screen.
For anyone else who runs into the same issue I rewrote my SPI code to send single lines and used the following implementation instead.
2021-09-25 12:10 PM
Seems as your code doing some SPI or memory colisions. Maybe show code for example click button event show mistake better.
2021-09-26 04:04 PM
Thanks for the reply!
Here is how I've implemented it. From my understanding this should lock the frame buffer while SPI is transmitting but perhaps I've done it incorrectly. LCD_Send_Segment() is the function that actually transfers the frame buffer.
Where can I find the click button event?
2021-09-26 07:57 PM
Ok I figured it out finally. It was a silly mistake on my part. I was sending the pointer to the first pixel in the frame buffer to the screen even though flushFrameBuffer was actually only sending a partial update to the screen. I should have been sending the first pixel of the updated area instead of the entire screen.
For anyone else who runs into the same issue I rewrote my SPI code to send single lines and used the following implementation instead.