ESP8266 在Arduino 使用ST7789 OLED

GND连接GND
VCC连接3.3V
SCL连接的ESP8266D5(GPIO14)
SDA连接ESP8266的D7(GPIO13)
RES 连接ESP8266的D0(GPIO16)
DC 连接ESP8266的D1(GPIO5)
CS 连接GND
BLK 连接3.3V

两个库:
Adafruit ST7789
Adafruit_GFX

**

重点Adafruit_GFX版本必须小于1.8

**

#include <Adafruit_GFX.h>    // Core graphics library
#include <Adafruit_ST7789.h> // Hardware-specific library for ST7789// ST7789 TFT module connections
#define TFT_DC    5     // TFT DC  pin is connected to NodeMCU pin D1 (GPIO5)
#define TFT_RST   4     // TFT RST pin is connected to NodeMCU pin D2 (GPIO4)
#define TFT_CS    15     // TFT CS  pin is connected to NodeMCU pin D8 (GPIO15)
// initialize ST7789 TFT library with hardware SPI module
// SCK (CLK) ---> NodeMCU pin D5 (GPIO14)
// MOSI(DIN) ---> NodeMCU pin D7 (GPIO13)
Adafruit_ST7789 tft = Adafruit_ST7789(TFT_CS, TFT_DC, TFT_RST);float p = 3.1415926;void setup(void) {Serial.begin(9600);Serial.print(F("Hello! ST77xx TFT Test"));// if the display has CS pin try with SPI_MODE0tft.init(240, 320, SPI_MODE2);    // 改成你屏幕的大小// if the screen is flipped, remove this commandtft.setRotation(2);Serial.println(F("Initialized"));uint16_t time = millis();tft.fillScreen(ST77XX_BLACK);time = millis() - time;Serial.println(time, DEC);delay(500);// large block of texttft.fillScreen(ST77XX_BLACK);testdrawtext("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur adipiscing ante sed nibh tincidunt feugiat. Maecenas enim massa, fringilla sed malesuada et, malesuada sit amet turpis. Sed porttitor neque ut ante pretium vitae malesuada nunc bibendum. Nullam aliquet ultrices massa eu hendrerit. Ut sed nisi lorem. In vestibulum purus a tortor imperdiet posuere. ", ST77XX_WHITE);delay(1000);// tft print function!tftPrintTest();delay(4000);// a single pixeltft.drawPixel(tft.width()/2, tft.height()/2, ST77XX_GREEN);delay(500);// line draw testtestlines(ST77XX_YELLOW);delay(500);// optimized linestestfastlines(ST77XX_RED, ST77XX_BLUE);delay(500);testdrawrects(ST77XX_GREEN);delay(500);testfillrects(ST77XX_YELLOW, ST77XX_MAGENTA);delay(500);tft.fillScreen(ST77XX_BLACK);testfillcircles(10, ST77XX_BLUE);testdrawcircles(10, ST77XX_WHITE);delay(500);testroundrects();delay(500);testtriangles();delay(500);mediabuttons();delay(500);Serial.println("done");delay(1000);
}void loop() {tft.invertDisplay(true);delay(500);tft.invertDisplay(false);delay(500);
}void testlines(uint16_t color) {tft.fillScreen(ST77XX_BLACK);for (int16_t x=0; x < tft.width(); x+=6) {tft.drawLine(0, 0, x, tft.height()-1, color);delay(0);}for (int16_t y=0; y < tft.height(); y+=6) {tft.drawLine(0, 0, tft.width()-1, y, color);delay(0);}tft.fillScreen(ST77XX_BLACK);for (int16_t x=0; x < tft.width(); x+=6) {tft.drawLine(tft.width()-1, 0, x, tft.height()-1, color);delay(0);}for (int16_t y=0; y < tft.height(); y+=6) {tft.drawLine(tft.width()-1, 0, 0, y, color);delay(0);}tft.fillScreen(ST77XX_BLACK);for (int16_t x=0; x < tft.width(); x+=6) {tft.drawLine(0, tft.height()-1, x, 0, color);delay(0);}for (int16_t y=0; y < tft.height(); y+=6) {tft.drawLine(0, tft.height()-1, tft.width()-1, y, color);delay(0);}tft.fillScreen(ST77XX_BLACK);for (int16_t x=0; x < tft.width(); x+=6) {tft.drawLine(tft.width()-1, tft.height()-1, x, 0, color);delay(0);}for (int16_t y=0; y < tft.height(); y+=6) {tft.drawLine(tft.width()-1, tft.height()-1, 0, y, color);delay(0);}
}void testdrawtext(char *text, uint16_t color) {tft.setCursor(0, 0);tft.setTextColor(color);tft.setTextWrap(true);tft.print(text);
}void testfastlines(uint16_t color1, uint16_t color2) {tft.fillScreen(ST77XX_BLACK);for (int16_t y=0; y < tft.height(); y+=5) {tft.drawFastHLine(0, y, tft.width(), color1);}for (int16_t x=0; x < tft.width(); x+=5) {tft.drawFastVLine(x, 0, tft.height(), color2);}
}void testdrawrects(uint16_t color) {tft.fillScreen(ST77XX_BLACK);for (int16_t x=0; x < tft.width(); x+=6) {tft.drawRect(tft.width()/2 -x/2, tft.height()/2 -x/2 , x, x, color);}
}void testfillrects(uint16_t color1, uint16_t color2) {tft.fillScreen(ST77XX_BLACK);for (int16_t x=tft.width()-1; x > 6; x-=6) {tft.fillRect(tft.width()/2 -x/2, tft.height()/2 -x/2 , x, x, color1);tft.drawRect(tft.width()/2 -x/2, tft.height()/2 -x/2 , x, x, color2);}
}void testfillcircles(uint8_t radius, uint16_t color) {for (int16_t x=radius; x < tft.width(); x+=radius*2) {for (int16_t y=radius; y < tft.height(); y+=radius*2) {tft.fillCircle(x, y, radius, color);}}
}void testdrawcircles(uint8_t radius, uint16_t color) {for (int16_t x=0; x < tft.width()+radius; x+=radius*2) {for (int16_t y=0; y < tft.height()+radius; y+=radius*2) {tft.drawCircle(x, y, radius, color);}}
}void testtriangles() {tft.fillScreen(ST77XX_BLACK);int color = 0xF800;int t;int w = tft.width()/2;int x = tft.height()-1;int y = 0;int z = tft.width();for(t = 0 ; t <= 15; t++) {tft.drawTriangle(w, y, y, x, z, x, color);x-=4;y+=4;z-=4;color+=100;}
}void testroundrects() {tft.fillScreen(ST77XX_BLACK);int color = 100;int i;int t;for(t = 0 ; t <= 4; t+=1) {int x = 0;int y = 0;int w = tft.width()-2;int h = tft.height()-2;for(i = 0 ; i <= 16; i+=1) {tft.drawRoundRect(x, y, w, h, 5, color);x+=2;y+=3;w-=4;h-=6;color+=1100;}color+=100;}
}void tftPrintTest() {tft.setTextWrap(false);tft.fillScreen(ST77XX_BLACK);tft.setCursor(0, 30);tft.setTextColor(ST77XX_RED);tft.setTextSize(1);tft.println("Hello World!");tft.setTextColor(ST77XX_YELLOW);tft.setTextSize(2);tft.println("Hello World!");tft.setTextColor(ST77XX_GREEN);tft.setTextSize(3);tft.println("Hello World!");tft.setTextColor(ST77XX_BLUE);tft.setTextSize(4);tft.print(1234.567);delay(1500);tft.setCursor(0, 0);tft.fillScreen(ST77XX_BLACK);tft.setTextColor(ST77XX_WHITE);tft.setTextSize(0);tft.println("Hello World!");tft.setTextSize(1);tft.setTextColor(ST77XX_GREEN);tft.print(p, 6);tft.println(" Want pi?");tft.println(" ");tft.print(8675309, HEX); // print 8,675,309 out in HEX!tft.println(" Print HEX!");tft.println(" ");tft.setTextColor(ST77XX_WHITE);tft.println("Sketch has been");tft.println("running for: ");tft.setTextColor(ST77XX_MAGENTA);tft.print(millis() / 1000);tft.setTextColor(ST77XX_WHITE);tft.print(" seconds.");
}void mediabuttons() {// playtft.fillScreen(ST77XX_BLACK);tft.fillRoundRect(25, 10, 78, 60, 8, ST77XX_WHITE);tft.fillTriangle(42, 20, 42, 60, 90, 40, ST77XX_RED);delay(500);// pausetft.fillRoundRect(25, 90, 78, 60, 8, ST77XX_WHITE);tft.fillRoundRect(39, 98, 20, 45, 5, ST77XX_GREEN);tft.fillRoundRect(69, 98, 20, 45, 5, ST77XX_GREEN);delay(500);// play colortft.fillTriangle(42, 20, 42, 60, 90, 40, ST77XX_BLUE);delay(50);// pause colortft.fillRoundRect(39, 98, 20, 45, 5, ST77XX_RED);tft.fillRoundRect(69, 98, 20, 45, 5, ST77XX_RED);// play colortft.fillTriangle(42, 20, 42, 60, 90, 40, ST77XX_GREEN);
}

参考文章:https://simple-circuit.com/esp8266-nodemcu-st7789-tft-ips-display/

ESP8266 在Arduino 使用ST7789 OLED相关推荐

  1. ESP8266/32 (Arduino)驱动SHT30获取温湿度

    ESP8266/32 Arduino IDE 驱动SHT30获取温湿度(不用外部库) SHT30是德国进口的温湿度传感器,优点就是小而且准,温度精度±0.3℃,而且因为是IIC总线的缘故,还可以跟其它 ...

  2. 利用HFS软件一分钟搭建好ESP8266基于Arduino开发环境

    利用HFS一分钟搭建好ESP8266基于Arduino开发环境

  3. arduino loar_采用ESP8266和Arduino设计基于IoT的患者健康监测系统

    随着大量新的医疗保健技术的发展,物联网正在迅速改变医疗保健行业.在本篇文章中,我们使用ESP8266和Arduino设计了一款基于IoT的患者健康监测系统.该项目中使用的物联网平台是ThingSpea ...

  4. 基于esp8266的Arduino网络时钟

    硬件 esp8266 01s arduino uno TM1637 4位数码管 软件 Arduino IDE 使用NTP服务需要先安装 NTPClient 库,按组合件 Crtrl + Shift + ...

  5. [arduino][u8g2][12864] oled—u8g2库使用说明(例子是12864液晶屏)

    [arduino][u8g2][12864] oled-u8g2库使用说明(例子是12864液晶屏) 首先说一下写这个文档的目的,一是给自己做个笔记来以备后边使,二是写个文档给大家看,我从网上找了很多 ...

  6. 【esp8266、arduino串口传递浊度、温度数据(json)】

    esp8266.arduino串口传递浊度.温度数据(json) 使用设备 Arduino uno esp8266 Arduino 代码部分 Arduino /**************led灯** ...

  7. 为 Esp8266 配置 Arduino 开发环境并测试WiFi

    为 Esp8266 配置 Arduino 开发环境 date: 2020-04-16 lastmod: 2021-09-21 安装驱动 为了让电脑可以正确识别开发板,需要装设备驱动(免驱插上就会自动安 ...

  8. arduino上ESP8266用Adafruit_SSD1306库驱动OLED屏

    关注.星标公众号,不错过精彩内容 编辑:Tony 来源:公众号TonyCode 在进行后续的ESP8266学习前,我们先来对OLED屏进行驱动,为后续学习提供直观的信息显示. 1. 安装驱动库 在之前 ...

  9. 用esp8266驱动0.96寸OLED屏幕 太空人动画

    昨天闲来没事玩了一下OLED屏幕 之前只是做过显示图片 还没弄过动画的 (其实差不多–) 用esp8266驱动0.96寸LED屏幕 太空人动画 入门esp8266 看这篇文章 参考https://bl ...

  10. 【ESP8266点焊机】基于 ESP8266 for Arduino

    本项目由负熵生之光大佬提供. B站链接:ESP8266 点焊机 3.0 / 开源自制 OSHWHub:ESP8266 点焊机 3.0 由于大佬提供了 V3.0 和 V2.0 版本,本着追新不追旧的原则 ...

最新文章

  1. 某单位招聘考试需要考核数学英语计算机,2010年10月自学考试电子商务网站设计原理试题...
  2. WebBrowserProgramming - Python Wiki
  3. Javascript 实现TreeView
  4. 先序,中序,后序线索二叉树
  5. 小程序wx.createInnerAudioContext()获取不到时长问题
  6. mockito入门_Mockito入门
  7. 几何级数 函数 matlab,matlab 实验05数据的统计分析
  8. (转) 学习淘淘商城第一课
  9. oracle逗号分隔函数
  10. 轻松应对多层JSON数据计算与入库
  11. 《深入浅出MFC》第一、二章笔记
  12. 【sketchup 2021】草图大师的编辑工具1【移动工具、旋转工具、缩放工具】
  13. Linux 基础之基础网络ss命令
  14. jsp房屋出租管理系统带合同
  15. 使用Arcmap将WGS84坐标转换成国家大地坐标系2000
  16. 编程语言的心智负担!你学编程得有多大的压力快来测试一下~
  17. 人工智能(mysql)—— mysql完整的sql查询
  18. 显著目标检测之Cascaded Partial Decoder for Fast and Accurate Salient Object Detection(CPD)
  19. 有线耳机真成了“时代的弃儿”?
  20. 2021年中国国产剧播出现状及行业发展趋势分析:网络剧播映指数上升明显,未来小体量精品短剧将会越来越多[图]

热门文章

  1. matlab ss2ss,Zemax+DDE+toolbox+for+Matlab 该工具箱可实现matlab编程和zemax通信 - 下载 - 搜珍网...
  2. ESP8266开发——安信可IDE环境搭建
  3. mtouch 3d gis,m3dgis,mtgis,mgis 多点触摸三维电子沙盘可视化交互系统教程第17课
  4. 除了深度学习,机器翻译还需要啥?
  5. project哪个版本好用
  6. 弱监督学习总结(1)
  7. 堆排序算法实现(最小堆)
  8. Linux FTP 命令全集
  9. 从solidWorks导出机器人URDF文件
  10. python毕业设计总结范文大全_毕业论文设计总结范文.docx