esp32-s3 0.96 OLED Arduino ssd1315
时间: 2025-06-29 16:07:16 浏览: 14
### ESP32-S3 驱动0.96寸OLED显示屏(SSD1306) 使用Arduino库教程
#### 准备工作
为了在ESP32-S3-WROOM上成功配置并运行OLED屏幕,需先安装最新版本的Arduino IDE[^1]。
#### 库文件准备
对于SSD1306 OLED显示模块的支持,推荐使用`Adafruit_SSD1306`库以及依赖项`Adafruit GFX Library`。这些可以通过Arduino IDE内置的库管理器轻松获取。打开IDE后依次点击 `工具 -> 管理库...`, 在弹出窗口内搜索上述两个库名,并按照提示完成安装操作。
#### 连接方式说明
针对不同接口类型的OLED屏(IIC/SPI),连接方法有所区别:
- **IIC模式**
对于采用IIC通信协议的产品而言,仅需占用两根信号线即数据(SDA)与时钟(SCL),通常情况下默认地址为`0x3C`。具体到ESP32平台下,则建议分别指定GPIO21作为SDA引脚、GPIO22作为SCL引脚来初始化对象实例[^4]:
```cpp
#include <Wire.h>
#include "Adafruit_GFX.h"
#include "Adafruit_SSD1306.h"
// 创建显示器对象,参数分别为 I2C 地址, SDA 引脚编号, SCL 引脚编号
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
```
- **SPI模式**
若选用SPI总线进行通讯的话,除了常规的数据(MOSI)/时钟(SCLK)之外还需要额外提供DC(Data/Command切换), RESET重置控制端子;而CS片选则视具体情况决定是否接入硬件资源——如果该管脚被内部拉低处理,则可省去外部连线步骤。基于此背景下的典型应用案例如下所示[^2]:
```cpp
#define OLED_MOSI 13 ///< 数据输入 MOSI (Master Out Slave In)
#define OLED_CLK 12 ///< 串行时钟 SCK (Serial Clock)
#define OLED_DC 15 ///< 数据命令选择 DC (Data Command select)
#define OLED_RESET 16 ///< 复位 RST (Reset)
#define OLED_CS -1 ///< 片选 CS (Chip Select)
Adafruit_SSD1306 display(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
```
#### 初始化与测试程序编写
无论采取哪种传输机制,在正式绘制图形之前都务必调用一次`begin()`成员函数以激活设备并与之建立联系。之后便可通过一系列绘图API实现文字打印、线条描绘等功能特性了:
```cpp
void setup() {
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
delay(2000); // 延迟启动时间
// 测试代码...
}
void loop() {}
```
阅读全文
相关推荐

















