I am trying to use a Color 320x240 TFT Touchscreen with ILI9341 Controller Chip along with the audio shield Rev.C and Teensy 3.2.
I have gotten the screen to display an image with this setup, so I'm pretty sure my connections are all good.
I am now trying to run the XPT2046_Touchscreen library example called ILI9341Test. I have changed the #define's to the ones recommended for usage with audio board (also the way I have connected the board) but it does not seem to be working. The sketch uploads and compiles but the screen is just blank white (or gray).
I noticed in the README for the XPT2046_Touchscreen library it says "The normal MISO, MOSI and SCK pins will be used automatically." I'm not seeing where they are set or if I can change them anywhere.
Code:#include <ILI9341_t3.h> #include <font_Arial.h> // from ILI9341_t3 #include <XPT2046_Touchscreen.h> #include <SPI.h> #define CS_PIN 8 //#define TFT_DC 9 //#define TFT_CS 10 // MOSI=11, MISO=12, SCK=13 #define TFT_DC 20 #define TFT_CS 21 #define TFT_RST 255 // 255 = unused, connect to 3.3V #define TFT_MOSI 7 #define TFT_SCLK 14 #define TFT_MISO 12 //ILI9341_t3 tft = ILI9341_t3(TFT_CS, TFT_DC, TFT_RST, TFT_MOSI, TFT_SCLK, TFT_MISO); XPT2046_Touchscreen ts(CS_PIN); #define TIRQ_PIN 2 //XPT2046_Touchscreen ts(CS_PIN); // Param 2 - NULL - No interrupts //XPT2046_Touchscreen ts(CS_PIN, 255); // Param 2 - 255 - No interrupts //XPT2046_Touchscreen ts(CS_PIN, TIRQ_PIN); // Param 2 - Touch IRQ Pin - interrupt enabled polling ILI9341_t3 tft = ILI9341_t3(TFT_CS, TFT_DC); void setup() { Serial.begin(38400); tft.begin(); tft.setRotation(1); tft.fillScreen(ILI9341_BLACK); ts.begin(); ts.setRotation(1); while (!Serial && (millis() <= 1000)); } boolean wastouched = true; void loop() { boolean istouched = ts.touched(); if (istouched) { TS_Point p = ts.getPoint(); if (!wastouched) { tft.fillScreen(ILI9341_BLACK); tft.setTextColor(ILI9341_YELLOW); tft.setFont(Arial_60); tft.setCursor(60, 80); tft.print("Touch"); } tft.fillRect(100, 150, 140, 60, ILI9341_BLACK); tft.setTextColor(ILI9341_GREEN); tft.setFont(Arial_24); tft.setCursor(100, 150); tft.print("X = "); tft.print(p.x); tft.setCursor(100, 180); tft.print("Y = "); tft.print(p.y); Serial.print(", x = "); Serial.print(p.x); Serial.print(", y = "); Serial.println(p.y); } else { if (wastouched) { tft.fillScreen(ILI9341_BLACK); tft.setTextColor(ILI9341_RED); tft.setFont(Arial_48); tft.setCursor(120, 50); tft.print("No"); tft.setCursor(80, 120); tft.print("Touch"); } Serial.println("no touch"); } wastouched = istouched; delay(100); }