Screen flickering refers to a visual issue where the display rapidly turns on and off or fluctuates in brigthness. This can occur intermittenly or continuosly, often caused by hardware problems, outdated drivers, or incompatible software. Common causes include loose display connections, faulty graphic drivers, or incorrect display settings. Flicering may also result from interference by background applications or screen refresh rate mismatches, impacting user experience and possibly leading to eye strain if unresolved.
Several clients have reported experiencing screen flickering issues, indicationg a recurring problem across many displays, this was not a one time issue. Clients have highlighted that the flickering often occurs intermittenly, affecting the usability and productivity. Simple restarting of the device helped temporarily, but the problem returned.
Flickering issue visible on display
Solution
The issue was initially believed to be resolved; however, it has persisted intermittently.
Fortunately, we now believe we have identified and resolved the root cause. As every client that had this problem and got this solution reported back that the issue occurs no more.
The problem stemmed from an incorrect initialization order: in the main function, MX_FMC_Init() must be called before MX_DSIHOST_DSI_Init().
When the LTDC error interrupt is enabled, the LTDC error handler is triggered during initialization after every startup, setting the Transfer Error flag. In instances where the black screen issue occurred, the error interrupt was triggered a second time during FMC initialization, causing the LTDC FIFO underrun flag to be set.
After reordering the initialization sequence, neither of these issues occurs.