Getting a new screen to work can be frustrating as until you get the control signals and initialisation sequence right you won’t see anything on the screen. Here are a few tips to help:-
Double check IO pin definitions in the driver header file.
Verify with a scope that all of the control and data pins to the screen are working correctly.
Add additional null execution steps to the DISPLAY_BUS_ACCESS_DELAY define in the display.h file in case more time is required for signals to stabilise on your PCB. This is more likely to be an issue for 2 layer PCB’s (no ground plane) with long tack lengths or screens with long ribbon / FFC cable connections.
Check that no other device on the data bus is outputting while the driver is trying to communicate with the screen.
If your screen controller IC includes a status register try reading the status from the screen and confirm that you get the expected response.
If you’re using output latches for some of the screen control pins, instead of pins connected directly to your processor, check your output latch function restores the previous output on the data bus when it exits, to avoid destroying the data the driver function is writing to the screen.
Check that your microcontroller is not resetting due to a watchdog timer timeout.
Check that you have enough stack space allocated. This driver does not use an excessive amount of ram from the stack, but if your application is already using large amounts of the stack before calling driver functions this may be causing a stack overrun?
Re-read the datasheet to find out what you’re doing wrong!


