Skip to content
STM32F103 8bit TFT Library for Arduino_STM32
Branch: master
Clone or download
Latest commit 2064e27 Sep 5, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
JPEGS Add JpegView Apr 14, 2018
examples add JpegView_320x480_SMT32 Apr 24, 2018
README.md 20180905 Sep 5, 2018
STM32_TFT_8bit.cpp 20180402 Apr 2, 2018
STM32_TFT_8bit.h 20180123 Jan 22, 2018
library.properties 28180120 Jan 20, 2018

README.md

STM32_TFT_8bit

8bit TFT Library for Arduino_STM32

I ported from here.
https://github.com/prenticedavid/MCUFRIEND_kbv


Software requirement

Core library
https://github.com/rogerclarkmelbourne/Arduino_STM32

Adafruit GFX Library
https://github.com/adafruit/Adafruit-GFX-Library


Wirering for 8bit Parallel TFT

Using GPIOA as Data Port
#define TFT_DATA GPIOA

TFT STM32F103
LCD_RST -- PB7
LCD_CS -- PB6
LCD_RS -- PB5
LCD_WR -- PB4(*2)
LCD_RD -- PB3(*2)
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(*2)
LCD_RD -- PB3(*2)
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.

(*2)By several boards, This port is used as JTAG.
You need remap.
afio_cfg_debug_ports(AFIO_DEBUG_NONE)

Pin define is "STM32_TFT_8bit.h"


Tested TFT

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


Setting your TFT's resolution

If your TFT's resolution is 320x480,
you have to set your TFT's resolution using tft.setResoution.

Example:

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.

Example:

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

R61505 2.4 inch TFT

r61505


SPFD5408 2.4 inch TFT

spfd5408


ILI9325 2.4 inch TFT

ili9325


ILI9341 2.4 inch TFT

ili9341


ILI9342 2.4 inch TFT

ili9342


JPEG Viewer

Viewer of a JPEG file in the SD card.

Software requirement

Arduino FAT16/FAT32 Library
https://github.com/greiman/SdFat

JPEG decoder library for STM32
https://github.com/nopnop2002/STM32_JPEGDecorder

Wirering for TFT built-in SD-CARD Reader

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.

How to use

Copy JPEGS file to your SD-CARD.
*The biggest length of the JPEG file name is 32 character.
Wire TFT built-in SD-CARD Reader to STM32.
Execute JpegView_240x320_SMT32.

jpegview-2

You can’t perform that action at this time.