驱动TFT屏幕

发布时间 2023-11-16 23:27:08作者: JeasonBoy

ESP8266 硬件SPI引脚:
这里用的是硬件SPI,所以驱动其他屏幕,一般只需要指定CS、DC、RST引脚就行,MOSI、SCLK是固定的,不用指明。除想走软件模拟驱动。
#define TFT_MISO D6 // Automatically assigned with ESP8266 if not defined
#define TFT_MOSI(SDA) D7 // Automatically assigned with ESP8266 if not defined
#define TFT_SCLK D5 // Automatically assigned with ESP8266 if not defined
#define TFT_CS D8 // Chip select control pin D8
#define TFT_DC(A0) D3 // Data Command control pin
#define TFT_RST D4 // Reset pin (could connect to NodeMCU RST, see next line)


ili9341:库:Adafruit_ILI9341 例子:graphicstest 改DC、CS引脚,直接运行

st7565:库:u8g2 例子:GraphicsTest 加入以下其中一行,F是FullBuffer的意思,如果想硬件驱动就用那个参数最少的
切记,这块屏幕默认对比度太低,运行起来看不清的,要在setup里的u8g2.begin();后面加一行u8g2.setContrast(200);设置一个比较高的对比度(最高255)
这块屏幕的引脚(从1到9):1.CS 2.RST 3.A0(DC) 4.SCK 5.SDA 6.VCC(3V) 7.GND 8.LED- 9.LED+(3V)
//U8G2_ST7565_LX12864_1_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ D5, /* data=*/ D7, /* cs=*/ D8, /* dc=*/ D3, /* reset=*/ D4);
//U8G2_ST7565_LX12864_F_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ D5, /* data=*/ D7, /* cs=*/ D8, /* dc=*/ D3, /* reset=*/ D4);
//U8G2_ST7565_LX12864_F_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ D8, /* dc=*/ D3, /* reset=*/ D4);

st7789:库:TFT_eSPI 例子:随便
这个库的例子不需要改引脚,改为在库源码目录里修改。
C:\Users\jeaso\Documents\Arduino\libraries\TFT_eSPI\User_Setup.h
把55行左右的注释去掉,声明要用哪个驱动#define ST7789_DRIVER
把88行的屏幕分辨率设置一下
#define TFT_WIDTH 240 // ST7789 240 x 240 and 240 x 320
#define TFT_HEIGHT 240 // ST7789 240 x 240
170行左右声明了引脚
#define TFT_MISO PIN_D6 // Automatically assigned with ESP8266 if not defined
#define TFT_MOSI PIN_D7 // Automatically assigned with ESP8266 if not defined
#define TFT_SCLK PIN_D5 // Automatically assigned with ESP8266 if not defined
#define TFT_CS PIN_D8 // Chip select control pin D8
#define TFT_DC PIN_D3 // Data Command control pin
#define TFT_RST PIN_D4 // Reset pin (could connect to NodeMCU RST, see next line)
至于PIN_DXX对应的是哪个物理引脚,可以在User_Setup_Select.h里末尾的地方看到,搜下关键字就找到了

st7789v
用这个库:https://github.com/deirvlon/ST7789v-Arduino
引脚跟上面一样配置
#define TFT_DC D3
#define TFT_RST D4
#define TFT_CS D8 // only for displays with CS pin
#define TFT_MOSI D7 // for hardware SPI data pin (all of available pins)
#define TFT_SCLK D5 // for hardware SPI sclk pin (all of available pins)
例子:graphicsTEST.ino
取消注释这一行,取代默认打开的那一行,ST7789v_arduino tft = ST7789v_arduino(TFT_DC, TFT_RST, TFT_CS); //for display
用硬件SPI的方式模拟
然后在setup里修改屏幕分辨率:tft.init(135, 240);