使用ESP32通过Arduino IDE点亮1.8寸TFT显示屏

开发板选择

本次使用开发板模块丝印为ESP32-WROOM-32E

开发板库选择

Arduino IDE上型号选择为ESP32-WROOM-DA Module

显示屏选择

使用显示屏为8针SPI接口显示屏

驱动IC为ST7735S

使用库

使用三个Arduino平台库

分别是

  • Adafruit_GFX
  • Adafruit_ST7735
  • SPI

代码详解

首先引入使用的三个库

  • Adafruit_GFX
  • Adafruit_ST7735
  • SPI
c 复制代码
#include <Adafruit_GFX.h>
#include <Adafruit_ST7735.h>
#include <SPI.h>

然后定义连接显示屏的引脚

c 复制代码
#define TFT_CS    14 // 请替换为您的CS引脚号
#define TFT_DC    27 // 请替换为您的DC引脚号
#define TFT_RST   5 // 请替换为您的RST引脚号
//#define TFT_SCK   18 // 请替换为您的SCK引脚号 
//#define TFT_MOSI  23 // 请替换为您的MOSI引脚号

显示屏共有8个引脚

功能如下所示:

  1. BLK :背光控制引脚 低电平关闭背光 悬空或高电平为开启背光
  2. CS :(Chip Select,片选引脚) SPI通信中用于选择特定的芯片或设备
  3. DC :(Data/Command,数据 / 命令引脚) 显示屏驱动通过该引脚来识别接受的数据为数据或命令
  4. RST:(Reset,复位引脚) 用于将设备恢复到初始状态。
  5. SCL:(Serial Clock,串行时钟引脚) SPI协议中的CLK引脚
  6. SDA :(Serial Data,串行数据引脚) SPI协议中的MOSI引脚
  7. VDD:(Power Supply Voltage,电源引脚)
  8. GND:(Ground,接地引脚)

通过查看<Adafruit_ST7735.h>文件可以知道有两种初始化引脚方式

一种是使用

c 复制代码
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);//创建显示屏对象并初始化

这时候可以将SCL和SDA引脚连接到默认的D18和D23引脚

也可以使用

c 复制代码
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_MOSI , TFT_SCLK , TFT_RST);//创建显示屏对象并初始化

来自定义使用的引脚

显示代码则使用下面的函数进行相关显示配置

c 复制代码
  tft.initR(INITR_BLACKTAB); 		//使用适当的初始化参数
  tft.setRotation(1); 				//设置显示方向,1表示顺时针旋转90度
  tft.fillScreen(ST7735_BLACK);		//设置背景颜色
  tft.setTextColor(ST7735_WHITE);	//设置文字颜色
  tft.setTextSize(2);				//设置字体大小
  tft.setCursor(10, 10);			//设置起始位置
  tft.println("Hello, ST7735!");	//输出显示的文本信息

下面代码则用来测试程序是否正确运行

正常运行时板载的LED灯将会闪烁

c 复制代码
  pinMode(2, OUTPUT);  // 将引脚2设置为输出模式
  digitalWrite(2, LOW);  // 将引脚2设置为低电平
  delay(1000);
  digitalWrite(2, HIGH);  // 将引脚2设置为高电平
  delay(1000);

完整代码

c 复制代码
//引入显示屏库
#include <Adafruit_GFX.h>
#include <Adafruit_ST7735.h>
#include <SPI.h>

#define TFT_CS    14 // 请替换为您的CS引脚号
#define TFT_DC    27 // 请替换为您的DC引脚号
#define TFT_RST   5 // 请替换为您的RST引脚号
//#define TFT_SCK   18 // 请替换为您的SCK引脚号 
//#define TFT_MOSI  23 // 请替换为您的MOSI引脚号
//已经默认配置

Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);//创建显示屏对象并初始化

void setup() {
  pinMode(2, OUTPUT);  // 将引脚2设置为输出模式
  tft.initR(INITR_BLACKTAB); // 使用适当的初始化参数
  tft.setRotation(1); // 设置显示方向,1表示顺时针旋转90度
  tft.fillScreen(ST7735_BLACK);//设置背景颜色
  tft.setTextColor(ST7735_WHITE);//设置文字颜色
  tft.setTextSize(2);//设置字体大小
  tft.setCursor(10, 10);//设置起始位置
  tft.println("Hello, ST7735!");
}

void loop() {
  digitalWrite(2, LOW);  // 将引脚2设置为低电平
  delay(1000);
  digitalWrite(2, HIGH);  // 将引脚2设置为高电平
  delay(1000);
}

显示测试

相关推荐
小莞尔5 小时前
【51单片机】【protues仿真】基于51单片机四层电梯系统
单片机·嵌入式硬件
CFZPL5 小时前
使用江科大串口发送函数发送freertos的vTaskList出现跑飞
单片机
F133168929576 小时前
WD5030A,24V降5V,15A 大电流,应用于手机、平板、笔记本充电器
stm32·单片机·嵌入式硬件·51单片机·硬件工程·pcb工艺
易享电子7 小时前
基于单片机电器断路器保护器系统Proteus仿真(含全部资料)
单片机·嵌入式硬件·fpga开发·51单片机·proteus
东坡肘子8 小时前
高通收购 Arduino:历史的轮回 | 肘子的 Swift 周报 #0106
swiftui·arduino·swift
爱倒腾的老唐9 小时前
01、如何学习单片机
单片机·嵌入式硬件·学习
点灯小铭9 小时前
基于单片机的夹具压力控制系统设计
单片机·嵌入式硬件·mongodb·毕业设计·课程设计
雾削木15 小时前
stm32解锁芯片
javascript·stm32·单片机·嵌入式硬件·gitee
三佛科技-1341638421217 小时前
手持小风扇MCU方案,智能风扇方案设计开发
单片机·嵌入式硬件
btzhy18 小时前
STM32单片机:基本定时器应用:PWM 生成(STM32L4xx)
stm32·单片机·嵌入式硬件·基本定时器应用:pwm生成