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

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2098|回复: 7

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

[复制链接]
发表于 2022-5-20 16:07 | 显示全部楼层 |阅读模式
本帖最后由 topdog 于 2022-5-20 23:02 编辑

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

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


[pre]#define ST7735_DRIVER

#define TFT_WIDTH  80
#define TFT_HEIGHT 160

#define ST7735_REDTAB160x80

#define TFT_RGB_ORDER TFT_BGR

#define TFT_MISO -1
#define TFT_MOSI  3
#define TFT_SCLK  2
#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_FREQUENCY  27000000[/pre]


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


[pre]#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);
}[/pre]

最终效果:
Cn.gif

 楼主| 发表于 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。
所以,你要从用的库、芯片、屏幕驱动、触摸驱动综合来考虑。

祝一起学习一起进步!
发表于 2022-5-20 20:47 | 显示全部楼层
正需要啊!摸索了半天没有搞定
 楼主| 发表于 2022-5-20 20:59 | 显示全部楼层
zhaoyimei 发表于 2022-5-20 20:47
正需要啊!摸索了半天没有搞定

可以玩上一阵。
发表于 2022-7-2 21:52 | 显示全部楼层
老师:合宙ESP32 的7PIN是GND对吗?
 楼主| 发表于 2022-7-3 00:06 | 显示全部楼层
发表于 2022-7-3 09:37 | 显示全部楼层
老师:若单独接屏如何接?
发表于 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
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 01:39 , Processed in 0.113643 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表