TFT_SPI compatibility with read/write to Serial UART on RP2040 #3336
-
Hi, looking for some community help after spending days trying to resolve and going nuts in the process. I have a Feather RP2040 with an ST7789 display using TFT_eSPI and want to read data from a Serial port and Deserialize with ArduinoJSON. The TFT_eSPI works with the display (Perfect!), and I've had the read/write serial stream working, - but not at the same time. As soon as I send data to the display, the Serial data stream cuts out. I've tried to ensure I don't have conflicting PINS, but need to help to understand if this is the issue. TFT_eSPI User_Setup File: Feather RP2040 Pin Setup (using the Earle Philhower arduino-pico core) Serial2.begin(57600); // initialise serial interface What Works:
Failure Mode:
Struggling to understand the conflict of TFT_eSPI which prevents a correct data stream on Serial |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments
-
Fixed - I was pushing the TFT_eSPI display update too often so it was blocking the Serial stream; I put a 250ms minimum timer on display updates and it allows the Serial UART to do its thing. |
Beta Was this translation helpful? Give feedback.
-
I have a similar situation, but on the ESP32 chip. 1 Display - ST7789. #include <Arduino.h> // TFT_DC 32 Library for reading and parsing data from the Serial port: #include "HLW8032.h" tft.init(); // ST7789 DISPLAY INIT The display output is excellent, without delays and artifacts. If we do not use the initialization command tft.init(); , then data reception from the port occurs correctly, as laid down by the program without any errors or breaks. Obviously, there is a conflict between SPY and UART. |
Beta Was this translation helpful? Give feedback.
-
void setup() { Serial.println("Serial Init.");// "Hello world." //Der Serial Killer //Serial ist toto nach TFT init gruss Klaus |
Beta Was this translation helpful? Give feedback.
Fixed - I was pushing the TFT_eSPI display update too often so it was blocking the Serial stream; I put a 250ms minimum timer on display updates and it allows the Serial UART to do its thing.