8bit TFT Library for Arduino_STM32
I ported from here.
https://github.com/prenticedavid/MCUFRIEND_kbv
Core library
https://github.com/rogerclarkmelbourne/Arduino_STM32
Adafruit GFX Library
https://github.com/adafruit/Adafruit-GFX-Library
Using GPIOA as Data Port
#define TFT_DATA GPIOA
TFT | STM32F103 | |
---|---|---|
LCD_RST | -- | PB7 |
LCD_CS | -- | PB6 |
LCD_RS | -- | PB5 |
LCD_WR | -- | PB4 |
LCD_RD | -- | PB3 |
LCD_D0 | -- | PA0 |
LCD_D1 | -- | PA1 |
LCD_D2 | -- | PA2 |
LCD_D3 | -- | PA3 |
LCD_D4 | -- | PA4 |
LCD_D5 | -- | PA5 |
LCD_D6 | -- | PA6 |
LCD_D7 | -- | PA7 |
5V | -- | 5V(*) |
3.3V | -- | 3.3V(*) |
GND | -- | GND |
Using GPIOC as Data Port
#define TFT_DATA GPIOC
TFT | STM32F103 | |
---|---|---|
LCD_RST | -- | PB7 |
LCD_CS | -- | PB6 |
LCD_RS | -- | PB5 |
LCD_WR | -- | PB4 |
LCD_RD | -- | PB3 |
LCD_D0 | -- | PC0 |
LCD_D1 | -- | PC1 |
LCD_D2 | -- | PC2 |
LCD_D3 | -- | PC3 |
LCD_D4 | -- | PC4 |
LCD_D5 | -- | PC5 |
LCD_D6 | -- | PC6 |
LCD_D7 | -- | PC7 |
5V | -- | 5V(*) |
3.3V | -- | 3.3V(*) |
GND | -- | GND |
*When a regulator(It's often AMS1117) is mounted on the back, it's operated 5V.
*When a regulator is NOT mounted on the back, it's operated 3.3V.
Pin define is "STM32_TFT_8bit.h"
ILI9325 2.4inch 240x320
ILI9341 2.4inch 240x320
ILI9342 2.4inch 240x320
SPFD5408 2.4inch 240x320
R61505 2.4inch 240x320
ST7783 2.4inch 240x320
LGDP4532 2.4inch 240x320
ILI9481 3.5inch 320x480
R61509V 3.6inch 240x400
RM68140 3.95inch 320x480
If your TFT's resolution is 320x480,
you have to set your TFT's resolution using tft.setResoution.
Exsample:
ID = tft.readID();
tft.setResolution(320, 480); // Set your resolution
Serial.print("Device ID: 0x"); Serial.println(ID, HEX);
tft.begin(ID);
uint32_t width = tft.width();
Serial.print("Width: "); Serial.println(width); // You will see 320
uint32_t height = tft.height();
Serial.print("Height: "); Serial.println(height); // You will see 480
If your TFT's resolution is 240x400,
you have to set your TFT's resolution and TFT's offset.
Exsample:
ID = tft.readID();
tft.setResolution(240, 400); // Set your resolution
tft.setOffset(32); // Set your offset
Serial.print("Device ID: 0x"); Serial.println(ID, HEX);
tft.begin(ID);
uint32_t width = tft.width();
Serial.print("Width: "); Serial.println(width); // You will see 240
uint32_t height = tft.height();
Serial.print("Height: "); Serial.println(height); // You will see 400
Viewer of a JPEG file in the SD card.
Arduino FAT16/FAT32 Library
https://github.com/greiman/SdFat
JPEG decoder library for STM32
https://github.com/nopnop2002/STM32_JPEGDecorder
TFT | STM32F103 | |
---|---|---|
SD_SS | -- | PB12 |
SD_SCK | -- | PB13 |
SD_DI | -- | PB15 |
SD_DO | -- | PB14 |
5V | -- | 5V(*) |
3.3V | -- | 3.3V(*) |
GND | -- | GND |
*When a regulator(It's often AMS1117) is mounted on the back, it's operated 5V.
*When a regulator is NOT mounted on the back, it's operated 3.3V.
Copy JPEGS file to your SD-CARD.
Wire TFT built-in SD-CARD Reader to STM32.
Execute JpegView_240x320_SMT32.