Bodmer / TFT_eSPI

Arduino and PlatformIO IDE compatible TFT library optimised for the Raspberry Pi Pico (RP2040), STM32, ESP8266 and ESP32 that supports different driver chips
Other
3.65k stars 1.05k forks source link

STM32 F4xx and ST7789 240x320 bug #1363

Closed Satanpit closed 2 years ago

Satanpit commented 2 years ago

Hello. I have a problem with STM32 F4xx and ST7789 240x320. If i define STM32 i have screen resolution only 240x240

My display - Wiki

Code example:

#include <Arduino.h>
#include <Wire.h>

#include <TFT_eSPI.h>
#include <SPI.h>

TFT_eSPI tft = TFT_eSPI();

void setup() {
  tft.begin();
  tft.init();
  tft.setRotation(1);
  tft.fillScreen(TFT_RED);

  tft.setCursor(0, 26);
  tft.setFreeFont(&FreeSans18pt7b);
  tft.setTextColor(WHITE, BLACK);
  tft.print("Test text");
}

void loop() {}

User setup code:

#define STM32

#define ST7789_DRIVER      // Full configuration option, define additional parameters below for this display

#define TFT_RGB_ORDER TFT_BGR  // Colour order Blue-Green-Red

#define TFT_WIDTH  320 // ST7789 240 x 240 and 240 x 320
#define TFT_HEIGHT 240 // ST7789 240 x 320

#define TFT_BL   PC14            // LED back-light control pin
#define TFT_BACKLIGHT_ON HIGH  // Level to turn ON back-light (HIGH or LOW)

#define TFT_MISO PA6
#define TFT_MOSI PA7
#define TFT_SCLK PA5
#define TFT_CS    PB6
#define TFT_DC    PA8
#define TFT_RST   PA9

#define LOAD_GLCD   // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH
#define LOAD_FONT2  // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters
#define LOAD_FONT4  // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters
#define LOAD_FONT6  // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm
#define LOAD_FONT7  // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:-.
#define LOAD_FONT8  // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-.
//#define LOAD_FONT8N // Font 8. Alternative to Font 8 above, slightly narrower, so 3 digits fit a 160 pixel TFT
#define LOAD_GFXFF  // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts

#define SMOOTH_FONT

// #define SPI_FREQUENCY  80000000

// Optional reduced SPI frequency for reading TFT
#define SPI_READ_FREQUENCY  20000000

// The XPT2046 requires a lower SPI clock rate of 2.5MHz so we define that here:
#define SPI_TOUCH_FREQUENCY  2500000

Result screen: photo_2021-10-12_13-03-17

Bodmer commented 2 years ago

The screen size must be specified in portrait orientation. So use:

#define TFT_WIDTH  240
#define TFT_HEIGHT 320

See example setup.

Satanpit commented 2 years ago

@Bodmer i try to use your example, but have the same problem

Axelman8 commented 2 years ago

Sorry to break in this closed thread, but i have the same situation. My user_setup.h has width and hight mixed up (landscape mode) but it works with all my 15 tft screens correctly (w = 128, h=160 ST7735), only the sprite(screen) buildup is in protrait. Maby these issues are related. I cannot find where to set the sprite(screen) to portrait.

Regards, Axelman8

Tuner_not_Portrait