Yes, it does have some problems in my inexperienced experience. It doesn't initialize the serial port.
I'll include a sketch by BUHOSOFT with the only change being DEBUG is enabled. It will probably crash badly on your system because of different expectations of screen size let alone colors. It should show your chip on the serial monitor i.e. open Tools>Serial Monitor or M You should have newline or carriage return set for it to work properly.
You will have to place all the #include files in your library if they aren't there already. Pretty easy to tell, you get an error and the compiler bails out.
I didn't notice a '#include SPI' but I think it is contained within the Adafruit libraries. I could be mistaken but I think Adafruit sacrificed some speed for compatibility by moving to SPI so things would work across a wider selection of displays and Arduino platforms.
// This sketch has been Refurbished by BUHOSOFT
// IMPORTANT: Adafruit_TFTLCD LIBRARY MUST BE SPECIFICALLY
// CONFIGURED FOR EITHER THE TFT SHIELD OR THE BREAKOUT BOARD.
// SEE RELEVANT COMMENTS IN Adafruit_TFTLCD.h FOR SETUP.
#define DEBUG
#include <Adafruit_GFX.h> // Core graphics library
#include <Adafruit_TFTLCD.h> // Hardware-specific library
// The control pins for the LCD can be assigned to any digital or
// analog pins...but we'll use the analog pins as this allows us to
// double up the pins with the touch screen (see the TFT paint example).
#define LCD_CS A3 // Chip Select goes to Analog 3
#define LCD_CD A2 // Command/Data goes to Analog 2
#define LCD_WR A1 // LCD Write goes to Analog 1
#define LCD_RD A0 // LCD Read goes to Analog 0
#define LCD_RESET A4 // Can alternately just connect to Arduino's reset pin
// When using the BREAKOUT BOARD only, use these 8 data lines to the LCD:
// For the Arduino Uno, Duemilanove, Diecimila, etc.:
// D0 connects to digital pin 8 (Notice these are
// D1 connects to digital pin 9 NOT in order!)
// D2 connects to digital pin 2
// D3 connects to digital pin 3
// D4 connects to digital pin 4
// D5 connects to digital pin 5
// D6 connects to digital pin 6
// D7 connects to digital pin 7
// For the Arduino Mega, use digital pins 22 through 29
// (on the 2-row header at the end of the board).
// Assign human-readable names to some common 16-bit color values:
#define BLACK 0x0000
#define BLUE 0x001F
#define RED 0xF800
#define GREEN 0x07E0
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF
Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
// If using the shield, all control and data lines are fixed, and
// a simpler declaration can optionally be used:
// Adafruit_TFTLCD tft;
void setup(void) {
#ifdef DEBUG
Serial.begin(9600);
Serial.println(F("Rotation Test!"));
#endif // DEBUG
tft.reset();
uint16_t identifier = tft.readID();
if(identifier == 0x9325) {
#ifdef DEBUG
Serial.println(F("Found ILI9325 LCD driver"));
} else if(identifier == 0x9328) {
Serial.println(F("Found ILI9328 LCD driver"));
} else if(identifier == 0x7575) {
Serial.println(F("Found HX8347G LCD driver"));
} else if(identifier == 0x9341) {
Serial.println(F("Found ILI9341 LCD driver"));
} else if(identifier == 0x8357) {
Serial.println(F("Found HX8357D LCD driver"));
#endif // DEBUG
} else {
#ifdef DEBUG
Serial.print(F("Unknown LCD driver chip: "));
Serial.println(identifier, HEX);
Serial.print(F("I try use ILI9341 LCD driver "));
Serial.println(F("If using the Adafruit 2.8\" TFT Arduino shield, the line:"));
Serial.println(F(" #define USE_ADAFRUIT_SHIELD_PINOUT"));
Serial.println(F("should appear in the library header (Adafruit_TFT.h)."));
Serial.println(F("If using the breakout board, it should NOT be #defined!"));
Serial.println(F("Also if using the breakout, double-check that all wiring"));
Serial.println(F("matches the tutorial."));
#endif // DEBUG
identifier = 0x9341;
}
tft.begin(identifier);
tft.fillScreen(BLACK);
#ifdef DEBUG
Serial.println(F("This is a test of the rotation capabilities of the TFT library!"));
Serial.println(F("Press <SEND> (or type a character) to advance"));
#endif // DEBUG
}
void loop(void) {
#ifndef DEBUG
rotatePixel();
#endif // DEBUG
rotateLine();
rotateFastline();
rotateDrawrect();
rotateFillrect();
rotateDrawcircle();
rotateFillcircle();
rotateText();
}
void rotateText() {
for (uint8_t i=0; i<4; i++) {
tft.fillScreen(BLACK);
#ifdef DEBUG
Serial.println(tft.getRotation(), DEC);
#endif // DEBUG
tft.setCursor(0, 30);
tft.setTextColor(RED);
tft.setTextSize(1);
tft.println("Hello World!");
tft.setTextColor(YELLOW);
tft.setTextSize(2);
tft.println("Hello World!");
tft.setTextColor(GREEN);
tft.setTextSize(3);
tft.println("Hello World!");
tft.setTextColor(BLUE);
tft.setTextSize(4);
tft.print(1234.567);
#ifdef DEBUG
while (!Serial.available());
Serial.read(); Serial.read(); Serial.read();
#else
delay(500);
#endif // DEBUG
tft.setRotation(tft.getRotation()+1);
}
}
void rotateFillcircle(void) {
for (uint8_t i=0; i<4; i++) {
tft.fillScreen(BLACK);
#ifdef DEBUG
Serial.println(tft.getRotation(), DEC);
#endif // DEBUG
tft.fillCircle(10, 30, 10, YELLOW);
#ifdef DEBUG
while (!Serial.available());
Serial.read(); Serial.read(); Serial.read();
#else
delay(500);
#endif // DEBUG
tft.setRotation(tft.getRotation()+1);
}
}
void rotateDrawcircle(void) {
for (uint8_t i=0; i<4; i++) {
tft.fillScreen(BLACK);
#ifdef DEBUG
Serial.println(tft.getRotation(), DEC);
#endif // DEBUG
tft.drawCircle(10, 30, 10, YELLOW);
#ifdef DEBUG
while (!Serial.available());
Serial.read(); Serial.read(); Serial.read();
#else
delay(500);
#endif // DEBUG
tft.setRotation(tft.getRotation()+1);
}
}
void rotateFillrect(void) {
for (uint8_t i=0; i<4; i++) {
tft.fillScreen(BLACK);
#ifdef DEBUG
Serial.println(tft.getRotation(), DEC);
#endif // DEBUG
tft.fillRect(10, 20, 10, 20, GREEN);
#ifdef DEBUG
while (!Serial.available());
Serial.read(); Serial.read(); Serial.read();
#else
delay(500);
#endif // DEBUG
tft.setRotation(tft.getRotation()+1);
}
}
void rotateDrawrect(void) {
for (uint8_t i=0; i<4; i++) {
tft.fillScreen(BLACK);
#ifdef DEBUG
Serial.println(tft.getRotation(), DEC);
#endif // DEBUG
tft.drawRect(10, 20, 10, 20, GREEN);
#ifdef DEBUG
while (!Serial.available());
Serial.read(); Serial.read(); Serial.read();
#else
delay(500);
#endif // DEBUG
tft.setRotation(tft.getRotation()+1);
}
}
void rotateFastline(void) {
for (uint8_t i=0; i<4; i++) {
tft.fillScreen(BLACK);
#ifdef DEBUG
Serial.println(tft.getRotation(), DEC);
#endif // DEBUG
tft.drawFastHLine(0, 20, tft.width(), RED);
tft.drawFastVLine(20, 0, tft.height(), BLUE);
#ifdef DEBUG
while (!Serial.available());
Serial.read(); Serial.read(); Serial.read();
#else
delay(500);
#endif // DEBUG
tft.setRotation(tft.getRotation()+1);
}
}
void rotateLine(void) {
for (uint8_t i=0; i<4; i++) {
tft.fillScreen(BLACK);
#ifdef DEBUG
Serial.println(tft.getRotation(), DEC);
#endif // DEBUG
tft.drawLine(tft.width()/2, tft.height()/2, 0, 0, RED);
#ifdef DEBUG
while (!Serial.available());
Serial.read(); Serial.read(); Serial.read();
#else
delay(500);
#endif // DEBUG
tft.setRotation(tft.getRotation()+1);
}
}
void rotatePixel(void) {
for (uint8_t i=0; i<4; i++) {
tft.fillScreen(BLACK);
#ifdef DEBUG
Serial.println(tft.getRotation(), DEC);
#endif // DEBUG
tft.drawPixel(10,20, RED);
#ifdef DEBUG
while (!Serial.available());
Serial.read(); Serial.read(); Serial.read();
#else
delay(500);
#endif // DEBUG
tft.setRotation(tft.getRotation()+1);
}
}