Weird behavior behind buttons

Description

What MCU/Processor/Board and compiler are you using?

I have successfully got LVGL to write to a 7" LCD screen via a RA8875 driver chip. I’m using the Nucleo-H7A3ZI-Q board

What LVGL version are you using?

V8.3

What do you want to achieve?

Fix the strange behavior/color. First photo is the screen showing the buttons before they are pressed/activated. The second photo shows what happens after they are pressed. I am using 5 external push buttons. The screen is not a touch screen.

As you can see there are black lines showing up above the buttons after they are activated.

Anybody have an idea what is causing the black lines? By the way the black line under the buttons shouldn’t be there. I don’t know if this makes a difference but there are times where the black lines “grow” in size if I just leave the board untouched.

Screenshot and/or video

If possible, add screenshots and/or videos about the current state.


To be honest, this looks like it could be an error with your lv_flush() function.

I am not using the lv_flush() function. Where would you recommend it go? I’m using lvgl version 8.3 so where in the documentation should I look for more info?

Thanks,
Richard

If I enable the pref monitor in lv_config.h

/1: Show CPU usage and FPS count/
#define LV_USE_PERF_MONITOR 1
#if LV_USE_PERF_MONITOR
#define LV_USE_PERF_MONITOR_POS LV_ALIGN_BOTTOM_RIGHT
#endif

The weird lines go away. The display is clear and looks like it is supposed to look. What is this small block of code doing to remove the weird lines?

Thanks,

Richard

Hello,

very strange behavior indeed… The performance monitor should not really affect this at all. When you have the perf. monitor enabled, do you see any actual monitoring on-screen? Should be visible.

As far as the “lv_flush()” function I mentioned, I was referring to the flushing callback function for your display driver settings: Display interface — LVGL documentation

You must have this (callback) function somewhere, as this is responsible for drawing the buffer, that LVGL fills up, to your display.

The performance monitor does show actual data. This cleans up the display. I wish I knew why this works as I really need the screen to be clean. I can’t have the performance monitor visible for the final design.

Here’s the screen with the performance monitor enabled:

It is clean and looks like it is supposed to. Any ideas why this cleans things up?

Thanks,
Richard