news 2026/5/9 1:07:30

使用 ESP8266 + Arduino IDE + ST7789 240*240 OLED 显示屏实现显示“Hello World!”

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用 ESP8266 + Arduino IDE + ST7789 240*240 OLED 显示屏实现显示“Hello World!”

我会带你从零开始,从安装 Arduino、配置 ESP8266 环境、接线、安装库到最终显示Hello World,全程一步到位,新手也能直接成功。

一、准备工具与材料

  1. 开发板:ESP8266MOD(ESP-12F / ESP-07 等通用)
  2. 显示屏:ST7789 1.8 寸 TFT 彩屏(最常用)
  3. 连接线:杜邦线若干
  4. 电脑 + USB 数据线
  5. 全新安装的Arduino IDE(官方最新版即可)

二、Arduino IDE安装

1.软件安装

直接下载软件安装即可

Arduino软件下载链接:https://arduino.me/download

2.库安装

2.1ESP8266库

在【文件】-> 【首选项】-> 【其他开发板管理器地址】里面添加上如下的库的链接地址,关闭并重开 Arduino。

https://arduino.esp8266.com/stable/package_esp8266com_index.json https://arduino.me/packages/esp32.json

【工具 】-> 【开发板】-> 【开发板管理器】,搜索esp8266,现在可以正常安装了(速度很快)。

2.2 TFT_eSPI库

我这里使用的是TFT_eSPI的库,当然好像还有其他的库,只是感觉TFT_eSPI的库代码写更简单一些。

在【库管理】中搜索“TFT_eSPI”然后安装即可,后面就可以包含TFT_eSPI.h,使用TFT_eSPI类的对象及函数进行字符串和图像的显示。

三、ESP8266 + ST7789显示屏硬件连接

ST7789显示屏总共有7根引脚,每根引脚功能定义及与ESP8266连线如下:

OLED 引脚ESP8266 引脚说明
VCC3.3V千万不能接 5V!会烧屏!
GNDGND共地
SDAGPIO13SPI 数据
SCLGPIO14SPI时钟
RESGPIO2复位
DCGPIO12数据/命令
BLK3.3V 或不接背光

注意:ST7789 只能用 3.3V 供电,接 5V 会直接烧坏屏幕!

四、代码实现

1. 选择开发板

打开 Arduino -> 【工具】-> 【开发板】-> 【ESP8266 Boards 】 -> 能看到Generic ESP8266 Module,说明核心已装好并选择。

2. 开启ST7789显示屏驱动,并在代码中配置引脚

打开TFT_eSPI.h文件,可以发现头文件包含了User_Setup_Select.h文件,继续打开该文件。

可以发现User_Setup_Select.h又包含了User_Setup.h文件,并且在User_Setup_Select.h的下方定义了各种驱动所对应的包含文件。

打开User_Setup.h文件,可以发现,这里才是定义了各种驱动宏文件的位置,首先把我们需要的ST7789宏打开

这里的TFT_RGB_ORDER就是显示屏的RGB的排布顺序,如果后面发现屏幕填充颜色不符合预期,就可以调节这里,其次下面的TFT_WIDTH/TFT_HEIGHT是定义显示屏的宽高的,因为我们马上只接在初始化TFT_eSPI类对象的时候就强指定屏幕宽高,这里可以不用定义。

接下来就是在代码中定义ESP8266MOD ↔ ST7789 接线,按照我们的硬件接线,因为ST7789没有片选线,所以不用打开,屏幕背光也可以选择性打开,我们这里也不打开。至此,代码配置上的工作已经完成。

3. 使用TFT_eSPI类编写显示字符的代码

下面就可以开始使用TFT_eSPI类对象进行字符串的显示,首先定义一个类对象,然后先调用begin进行初始化,随后调用fillScreen填充颜色,设置字体颜色及大小,最后调用printf进行字符串的显示,随后显示效果如下。

#include "TFT_eSPI.h" #include <string> #include "pic.h" TFT_eSPI TFT(240, 240); void slowPrint(String str) { for(int i=0;i<str.length();i++) { TFT.print(str[i]); delay(100); } } void slowPrint1(std::string str) { for(int i=0;i<str.size();i++) { TFT.print(str[i]); delay(100); } } void setup() { // put your setup code here, to run once: TFT.begin(); TFT.fillScreen(TFT_BLACK); TFT.setTextColor(TFT_GREEN); TFT.setTextSize(3); 直接调用printf接口进行显示字符串 TFT.printf("Helloworld"); // 调用自己的接口实现慢打印 // slowPrint("Helloworld"); // 显示图片 //TFT.pushImage(0,0,240,240,gImage_test,1); } void loop() { // put your main code here, to run repeatedly: }

五、常见问题

1. 屏幕不亮

  • 检查 BLK 接 3.3V
  • 检查 VCC 是 3.3V,不是 5V

2. 亮屏但不显示文字

  • 检查 SCL/SDA 不要接反
  • 检查 CS、DC、RES 接线
  • 屏幕驱动是否配置有问题(User_Setup.h中是否开启了ST7789宏定义)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 1:01:22

Python 爬虫反爬突破:随机参数生成算法还原

前言 在现代高反爬站点架构中&#xff0c;固定参数、静态签名早已被淘汰&#xff0c;绝大多数平台接口请求都会携带随机字符串、随机设备标识、随机时间戳、随机盐值、随机流水号一类动态参数。这类参数每次请求都不重复、无固定规律&#xff0c;前端通过内置 JS 算法实时生成…

作者头像 李华
网站建设 2026/5/9 0:48:30

Emacs集成AI编程助手:agent-shell配置与工作流实战指南

1. 项目概述&#xff1a;在Emacs中构建你的AI副驾驶如果你和我一样&#xff0c;是个重度Emacs用户&#xff0c;同时又对AI编程助手&#xff08;比如Claude Code、Cursor、Gemini CLI这些&#xff09;爱不释手&#xff0c;那你肯定也经历过这种“精神分裂”般的开发体验&#xf…

作者头像 李华
网站建设 2026/5/9 0:43:36

08-MLOps与工程落地——数据漂移监控:Evidently

数据漂移监控&#xff1a;Evidently&#xff08;数据漂移检测、模型性能监控、报告生成&#xff09; 一、Evidently概述 1.1 什么是Evidently&#xff1f; import matplotlib.pyplot as plt from matplotlib.patches import Rectangle, FancyBboxPatch import warnings warn…

作者头像 李华
网站建设 2026/5/9 0:33:16

量子心灵感应技术:突破光速限制的通信革命

1. 量子心灵感应技术概述量子心灵感应&#xff08;Quantum Telepathy&#xff09;并非科幻小说中的超能力&#xff0c;而是一种基于量子纠缠原理的实用技术方案。这项技术的核心价值在于解决那些由于通信延迟或物理隔离导致协调困难的现实问题。想象一下&#xff0c;当两个交易…

作者头像 李华