合宙ESP32C3使用TFT_eSPI库操作ST7735s屏幕 (上)-Arduino中文社区 - Powered by Discuz! Archiver

topdog 发表于 2022-5-20 16:07

合宙ESP32C3使用TFT_eSPI库操作ST7735s屏幕 (上)

本帖最后由 topdog 于 2022-5-20 23:02 编辑

TFT_eSPI库升级到2.4.61版本可以完美的支持的合宙ESP32C3操作ST7735s屏幕。合宙ESP32C3和ST7735管脚配置图参见前期文章。

一、修改\Arduino\libraries\TFT_eSPI文件夹下的User_Setup.h配置

#define ST7735_DRIVER

#define TFT_WIDTH80
#define TFT_HEIGHT 160

#define ST7735_REDTAB160x80

#define TFT_RGB_ORDER TFT_BGR

#define TFT_MISO -1
#define TFT_MOSI3
#define TFT_SCLK2
#define TFT_CS    7
#define TFT_DC    6
#define TFT_RST   10

#define LOAD_GLCD   
#define LOAD_FONT2
#define LOAD_FONT4
#define LOAD_FONT6
#define LOAD_FONT7
#define LOAD_FONT8
#define LOAD_GFXFF
#define SMOOTH_FONT

#define SPI_FREQUENCY27000000


二:刷入示例程序:
观察一下色彩、横竖屏、屏幕定位和默认的字体大小。

#include <SPI.h>

#include <TFT_eSPI.h>

TFT_eSPI tft = TFT_eSPI( );

void setup(void) {
tft.init();

tft.setRotation(1);

tft.fillScreen(TFT_BLACK);

delay(100);
}

void loop() {

tft.invertDisplay( false );

tft.fillScreen(TFT_BLACK);

tft.setCursor(0, 0, 1);

tft.setTextColor(TFT_WHITE, TFT_BLACK);
tft.println("Invert OFF\n");

tft.println("White text");

tft.setTextColor(TFT_RED, TFT_BLACK);
tft.println("Red text");

tft.setTextColor(TFT_GREEN, TFT_BLACK);
tft.println("Green text");

tft.setTextColor(TFT_BLUE, TFT_BLACK);
tft.println("Blue text");

delay(5000);


tft.invertDisplay( true ); // Where i is true or false

tft.fillScreen(TFT_BLACK);

tft.setCursor(0, 0, 2);

tft.setTextColor(TFT_WHITE, TFT_BLACK);
tft.println("Invert ON\n");

tft.println("White text");

tft.setTextColor(TFT_RED, TFT_BLACK);
tft.println("Red text");

tft.setTextColor(TFT_GREEN, TFT_BLACK);
tft.println("Green text");

delay(5000);
}

最终效果:


topdog 发表于 2022-7-3 22:18

本帖最后由 topdog 于 2022-7-4 23:04 编辑

tmld570707 发表于 2022-7-3 09:37
老师:若单独接屏如何接?
你的问题看这个帖子。
https://www.arduino.cn/thread-108079-1-1.html

SPI 有三线接法,四线接法。软体上有分为软实现,硬体实现。
以UNO为例,硬件的SPI:
MOSI − 11
MISO − 12
SCK − 13
SS − 10

ESP32系列芯片乐鑫在SPI基础上还自定义了VSPI、HSPI、FSPI。
那就要根据你用的芯片来定义管脚了,另外各种屏幕的结构也不一样呀。
各国对SPI管脚标识也是不一样的,有的四线屏幕标称是DIN、DC、SS、CLK或者SCK。
所以,你要从用的库、芯片、屏幕驱动、触摸驱动综合来考虑。

祝一起学习一起进步!

zhaoyimei 发表于 2022-5-20 20:47

正需要啊!摸索了半天没有搞定

topdog 发表于 2022-5-20 20:59

zhaoyimei 发表于 2022-5-20 20:47
正需要啊!摸索了半天没有搞定

可以玩上一阵。

tmld570707 发表于 2022-7-2 21:52

老师:合宙ESP32 的7PIN是GND对吗?

topdog 发表于 2022-7-3 00:06

tmld570707 发表于 2022-7-2 21:52
老师:合宙ESP32 的7PIN是GND对吗?

https://www.arduino.cn/thread-107965-1-1.html

tmld570707 发表于 2022-7-3 09:37

老师:若单独接屏如何接?

sdieedu 发表于 2022-7-22 19:24

topdog 发表于 2022-7-3 22:18
你的问题看这个帖子。
https://www.arduino.cn/thread-108079-1-1.html



麻烦大佬提供一下思路,arduino +1.8 白屏问题,谢谢
https://www.arduino.cn/thread-109281-1-1.html
页: [1]
查看完整版本: 合宙ESP32C3使用TFT_eSPI库操作ST7735s屏幕 (上)