使用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);
}

显示测试

相关推荐
march_birds1 小时前
FreeRTOS 与 RT-Thread 事件组对比分析
c语言·单片机·算法·系统架构
触角010100013 小时前
STM32F103低功耗模式深度解析:从理论到应用实践(上) | 零基础入门STM32第九十二步
驱动开发·stm32·单片机·嵌入式硬件·物联网
昊虹AI笔记4 小时前
使用STM32CubeMX和Keil在STM32上创建并运行一个简单的FreeRTOS多任务程序
stm32·单片机·嵌入式硬件
王光环4 小时前
单片机使用printf,不用微库
单片机·嵌入式硬件
西城微科方案开发5 小时前
体重秤PCBA电路方案组成结构
单片机·嵌入式硬件
深圳市青牛科技实业有限公司5 小时前
「青牛科技 」GC4931P/4938/4939 12-24V三相有感电机驱动芯片 对标Allegro A4931/瑞盟MS4931
科技·单片机·扫地机器人吸尘·筋膜枪电机·驱动轮电机·服务机器人驱动轮电机·工业机器人减速电机
Qingniu016 小时前
「青牛科技」GC5849 12V三相无感正弦波电机驱动芯片
科技·单片机·嵌入式硬件·cpu散热风扇·vga显卡散热风扇·rgb机箱散热风扇·水冷泵及散热风扇
charlie1145141916 小时前
STM32F103C8T6单片机硬核原理篇:讨论GPIO的基本原理篇章1——只讨论我们的GPIO简单输入和输出
c语言·stm32·单片机·嵌入式硬件·gpio·数据手册
阿让啊6 小时前
bootloader+APP中,有些APP引脚无法正常使用?
c语言·开发语言·stm32·单片机·嵌入式硬件
可待电子单片机设计定制(论文)8 小时前
【51单片机】基于单片机的智能门禁系统设计
单片机·mongodb·51单片机