目录
- 开发板
- 引脚图
- Arduino环境配置
- 1.ESP32开发版下载
- 2.Arduino开发板选择 -> ESP32 Dev Module
- 3.安装驱动库
- 接线图
- Arduino代码
- 现象演示
开发板
ESP-WROOM-32
引脚图
Arduino环境配置
1.ESP32开发版下载
选择 esp32 by Espressif Systems
2.Arduino开发板选择 -> ESP32 Dev Module
Flash Mode选择DIO
连接ESP32并选择指定端口
3.安装驱动库
ESP8266 and ESP32 OLED driver for SSD1306 displays by ThingPulse, Fabrice Weinberg
版本:4.4.0以上
接线图
ESP32开发版 | OLED模块 | 串口1 | 串口2 |
---|---|---|---|
GND | GND | ||
3V3 | VCC | ||
GPIO22 | SCL | ||
GPIO21 | SDA | ||
TypeC接口 | TypeC | ||
GPIO17 | RX | ||
GPIO16 | TX |
Arduino代码
#include <Wire.h> // Only needed for Arduino 1.6.5 and earlier
#include "SSD1306Wire.h" // legacy: #include "SSD1306.h"
SSD1306Wire display(0x3c, SDA, SCL); // ADDRESS, SDA, SCL - SDA and SCL
void setup() {
Serial.begin(9600);
Serial2.begin(9600);
Serial.println();
// Initialising the UI will init the display too.
display.init();
display.flipScreenVertically();
display.setFont(ArialMT_Plain_10);
}
void loop() {
// clear the display
//从串口监视器读取输入数据
if(Serial.available()){
char data = Serial.read();
display.clear();
display.flipScreenVertically();
display.setTextAlignment(TEXT_ALIGN_LEFT);
display.setFont(ArialMT_Plain_10);
display.drawString(0, 0, "Serial.read:");
display.drawString(0, 12, "Serial2.read:");
display.drawString(65, 0, &data);
display.display();
//将数据发送到 UART2
Serial2.write(data);
}
//从UART2读取输入数据
if(Serial2.available()){
char data = Serial2.read();
display.clear();
display.flipScreenVertically();
display.setTextAlignment(TEXT_ALIGN_LEFT);
display.setFont(ArialMT_Plain_10);
display.drawString(0, 0, "Serial.read:");
display.drawString(0, 12, "Serial2.read:");
display.drawString(70, 12, &data);
display.display();
//将数据发送到 UART2
Serial.write(data);
}
}
现象演示
将代码烧录到ESP中,打开Arduino中的端口监视器,另外再打开一个串口调试工具
清空两端的显示区域,并相互发送字符
在OLED中看到对应刚发送的内容,如下图