Nichen留言 | 贡献
创建页面,内容为“<!-- ========================= 0.96inch OLED (A) — 页面源码(可直接粘贴) 说明: 1) 将占位图片/文件名替换为你站点已上传的文件; 2) 若不想隐藏目录,删掉 __NOTOC__; 3) 如使用 I²C/不同驱动芯片,请据实改动“通信模式/初始化”相关内容。 ========================= --> __NOTOC__ __NOEDITSECTION__ = 0.96inch OLED (A) = File:0.96inch_OLED_A.jpg|center|420px|thumb|0…”
 
Nichen留言 | 贡献
无编辑摘要
第1行: 第1行:
<!-- =========================
    0.96inch OLED (A) — 页面源码(可直接粘贴)
    说明:
    1) 将占位图片/文件名替换为你站点已上传的文件;
    2) 若不想隐藏目录,删掉 __NOTOC__;
    3) 如使用 I²C/不同驱动芯片,请据实改动“通信模式/初始化”相关内容。
========================= -->
__NOTOC__ __NOEDITSECTION__
__NOTOC__ __NOEDITSECTION__


= 0.96inch OLED (A) =
= 0.96inch OLED (A) =


[[File:0.96inch_OLED_A.jpg|center|420px|thumb|0.96inch OLED (A) 模块示意图(请替换为你的图片文件名)]]
[[File:https://www.waveshare.net/w/upload/7/79/0.96inch_OLED_A.jpg|center|420px|thumb|0.96inch OLED (A) 模块示意图]]


; 型号
; 型号
: 0.96inch OLED (A)(横/弯脚排针)
: 0.96inch OLED (A)(横/弯脚排针)
; 对应版本
; 对应版本
: [[0.96inch OLED (B)|0.96inch OLED (B)]](竖/直脚排针)
: [[https://www.waveshare.net/wiki/0.96inch_OLED_(B)|0.96inch OLED (B)]](竖/直脚排针)
; 驱动芯片
; 驱动芯片
: SSD1306 / SSD1315(按实物填写)
: SSD1306 / SSD1315
; 分辨率
; 分辨率
: 128×64
: 128×64
第24行: 第16行:
: 3-wire SPI / 4-wire SPI / I²C
: 3-wire SPI / 4-wire SPI / I²C
; 默认模式
; 默认模式
: 4-wire SPI(出厂默认,若不同请改)
: 4-wire SPI(出厂默认)


----
----


== 产品简介 ==
== 产品简介 ==
本产品为 0.96 英寸 OLED 显示模块,内置 {{在此填写芯片型号}} 驱动,分辨率 128×64。支持 **3 线 SPI、4 线 SPI 与 I²C** 多种通信方式,适配 Raspberry Pi、Arduino、STM32、ESP32、Raspberry Pi Pico 等主控平台。   
0.96 英寸 OLED 显示模块,内置 SSD1306/SSD1315 驱动,分辨率 128×64。支持 **3 线 SPI、4 线 SPI 与 I²C** 多种通信方式,适配 Raspberry Pi、Arduino、STM32、ESP32、Pico 等主控平台。   
A 版为**横/弯脚排针**,B 版为**竖/直脚排针**;电气功能一致,仅排针方向不同。
A 版为**横/弯脚排针**,B 版为**竖/直脚排针**;电气功能一致,仅排针方向不同。


== 产品参数 ==
== 产品参数 ==
* 供电电压:3.3V / 5V(双电压兼容按你的板卡丝印填写)
* 供电电压:3.3V / 5V
* 典型电流:全亮约 XX mA,静态约 X mA(以官方/实测为准)
* 功耗:全亮约 20~30mA
* 有效显示区:约 21.7 mm × 11.2 mm(0.96")
* 显示区域:21.7 mm × 11.2 mm
* 显示颜色:单色(白//蓝,或“上黄下蓝”等,请据实填写)
* 颜色:单色(白//黄,上黄下蓝)
* 接口模式:3-wire SPI / 4-wire SPI / I²C
* 接口模式:SPI/I²C
* 兼容平台:Raspberry Pi / Arduino / STM32 / ESP32 / Pico
* 兼容平台:Raspberry Pi / Arduino / STM32 / ESP32 / Pico
* 工作温度:-20℃ ~ +70℃(如有)
 
> 提示:OLED 长时间固定画面可能产生轻微残影,建议周期性刷新或启用屏保。
 
== 通信模式与焊盘配置 ==
模块背面通常通过两颗选择电阻(示例:BS1、BS0 或 R1、R2)切换通信方式(以及 I²C 地址)。出厂默认 **4-wire SPI**。实际丝印以 PCB 为准。


== 通信模式与电阻配置 ==
{| class="wikitable"
{| class="wikitable"
! 通信模式 !! 选择位示例(按你的丝印改) !! 备注
! 模式 !! 配置示例
|-
|-
| 3-wire SPI || BS1=0 / BS0=1 || D/C 通过串行命令位区分
| 3-wire SPI || BS1=0 / BS0=1
|-
|-
| 4-wire SPI(默认) || BS1=0 / BS0=0 || 常用,速率较高
| 4-wire SPI(默认) || BS1=0 / BS0=0
|-
|-
| I²C || BS1=1 / BS0=0 || 接线简单;地址随焊盘/电阻改变
| I²C || BS1=1 / BS0=0
|}
|}
* I²C 地址:0x3C / 0x3D(示例,按实际焊接/丝印填写)
* 若你的板卡用 “R1/R2 0Ω 电阻是否焊接” 来表示,请将上表文字替换为相应描述。


== 管脚定义(A 版:横/弯脚排针) ==
== 管脚定义(A 版:横/弯脚排针) ==
不同批次可能丝印略有差异(如 RES/RESET、DIN/MOSI、CLK/SCK)。以实物丝印为准。
{| class="wikitable"
{| class="wikitable"
! 引脚序号 !! 丝印名称 !! SPI(4-wire)说明 !! I²C 说明
! 引脚 !! 名称 !! SPI 功能 !! I²C 功能
|-
|-
| 1 || VCC || 3.3V/5V 电源正 || 3.3V/5V 电源正
| 1 || VCC || 电源正(3.3V/5V) || 电源正(3.3V/5V)
|-
|-
| 2 || GND || 电源地 || 电源地
| 2 || GND || 电源地 || 电源地
|-
|-
| 3 || DIN / SDA || SPI MOSI / 数据输入 || I²C 数据(SDA)
| 3 || DIN/SDA || SPI MOSI || I²C 数据
|-
|-
| 4 || CLK / SCL || SPI 时钟(SCK) || I²C 时钟(SCL)
| 4 || CLK/SCL || SPI 时钟 || I²C 时钟
|-
|-
| 5 || CS || 片选(低有效) || —(I²C 无)
| 5 || CS || 片选 ||
|-
|-
| 6 || DC || 数据/命令选择(1=数据/0=命令) || —(I²C 无)
| 6 || DC || 数据/命令选择 ||
|-
|-
| 7 || RST / RES || 复位(低有效) || 复位(低有效)
| 7 || RST || 复位 || 复位
|}
|}


== 典型接线 ==
== 接线示例 ==
; 4-wire SPI(默认)
; SPI
: MCU → OLED:MOSI→DIN、SCK→CLK、CS→CS、D/C→DC、RST→RST、3V3/5V→VCC、GND→GND
: MOSI→DIN、SCK→CLK、CS→CS、DC→DC、RST→RST、VCC→3.3V/5V、GND→GND
; I²C
; I²C
: MCU → OLED:SDA→SDA、SCL→SCL、3V3/5V→VCC、GND→GND(并按焊盘配置地址)
: SDA→SDA、SCL→SCL、VCC→3.3V/5V、GND→GND
 
> SPI 速率可较高但占用更多 IO;I²C 接线简单但速率相对较低。
 
== 快速上手 ==
以下示例仅为“壳子”,请替换为你自己的初始化/库链接/代码片段。


=== Arduino / ESP32(U8g2 或 Adafruit SSD1306) ===
== 示例代码 ==
=== Arduino/ESP32 (U8g2) ===
<pre>
<pre>
// 以 U8g2 SPI 为例(请按你的引脚/芯片修改构造函数)
#include <U8g2lib.h>
#include <U8g2lib.h>
U8G2_SSD1306_128X64_NONAME_F_4W_SW_SPI u8g2(
U8G2_SSD1306_128X64_NONAME_F_4W_SW_SPI u8g2(U8G2_R0, SCK, MOSI, CS, DC, RST);
  /* rotation */ U8G2_R0,
  /* clock*/  SCK_PIN, /* data*/ MOSI_PIN, /* cs*/ CS_PIN,
  /* dc*/    DC_PIN, /* reset*/ RST_PIN
);


void setup() {
void setup() {
   u8g2.begin();
   u8g2.begin();
}
}
void loop() {
void loop() {
   u8g2.clearBuffer();
   u8g2.clearBuffer();
   u8g2.setFont(u8g2_font_ncenB08_tr);
   u8g2.setFont(u8g2_font_ncenB08_tr);
   u8g2.drawStr(0, 12, "Hello OLED!");
   u8g2.drawStr(0,12,"Hello OLED!");
  u8g2.drawFrame(0, 16, 128, 48);
   u8g2.sendBuffer();
   u8g2.sendBuffer();
}
}
</pre>
</pre>


=== Raspberry Pi(Python)===
=== Raspberry Pi (Python luma.oled) ===
<pre>
<pre>
# 示例:I2C + luma.oled(按需修改地址/引脚)
from luma.core.interface.serial import i2c
# pip install luma.oled pillow
from luma.core.interface.serial import i2c, spi
from luma.oled.device import ssd1306
from luma.oled.device import ssd1306
from PIL import Image, ImageDraw, ImageFont
from PIL import Image, ImageDraw


serial = i2c(port=1, address=0x3C) # 如为 0x3D 请改
serial = i2c(port=1, address=0x3C)
device = ssd1306(serial)
device = ssd1306(serial)


image = Image.new("1", device.size)
image = Image.new("1", device.size)
draw = ImageDraw.Draw(image)
draw = ImageDraw.Draw(image)
draw.text((0, 0), "Hello OLED!", fill=255)
draw.text((0,0), "Hello OLED!", fill=255)
device.display(image)
device.display(image)
</pre>
</pre>


=== STM32(HAL,伪代码)===
== 尺寸图 ==
<pre>
[[File:https://www.waveshare.net/w/upload/2/23/0.96inch_OLED_Dimension.png|center|520px|thumb|尺寸图]]
// 1) CubeMX 选好 SPI/I2C 与 GPIO;
// 2) 初始化序列请对应 SSD1306/SSD1315 官方推荐参数;
// 3) 典型流程:Reset -> InitCmds -> 清屏 -> 画点/线/字。
void OLED_Init(void){
  OLED_Reset_Low(); HAL_Delay(10); OLED_Reset_High();
  // 发送初始化命令序列(对比你所用芯片的推荐序列)
  OLED_SendCmd(0xAE); // Display Off
  /* ... 省略若干初始化命令 ... */
  OLED_SendCmd(0xAF); // Display On
}
</pre>


== 尺寸与外形 ==
== 常见问题 ==
* 外形尺寸:33.0 mm × 33.5 mm(示例,按资料更正)
; 上电不亮?
* 显示区域:21.7 mm × 11.2 mm(约)
: OLED 无背光,需要初始化才会显示。
* 排针形式:A=横/弯脚;B=竖/直脚(功能一致)
; 会不会烧屏?
 
: 长时间静态画面会产生残影,建议定期刷新。
[[File:0.96inch_OLED_A_Dimension.png|center|520px|thumb|尺寸图(请替换为你的尺寸图文件名)]]
 
== 常见问题(FAQ) ==
; 上电不亮,是坏了吗?
: OLED 无背光;仅接 VCC/GND 不会发光,需主控初始化后显示。
; 屏幕有残影怎么办?
: 建议定时刷新或屏保动画;降低固定高亮图案的停留时间。
; SPI 与 I²C 如何选择?
: SPI 刷新更快、更流畅;I²C 接线更简洁、占用 IO 更少。


== 资料下载 ==
== 资料下载 ==
* [[File:0.96inch-OLED-UserManual.pdf|用户手册(PDF)]]
* [https://www.waveshare.net/w/upload/f/f9/0.96inch-OLED-UserManual.pdf 用户手册(PDF)]
* [[File:0.96inch-OLED-Schematic.pdf|原理图(PDF)]]
* [https://www.waveshare.net/w/upload/b/b8/0.96inch-OLED-Schematic.pdf 原理图(PDF)]
* 示例代码:
* [https://www.waveshare.net/w/upload/9/9f/0.96inch-OLED-Arduino.zip Arduino 例程]
** [[File:Arduino_SSD1306_Example.zip|Arduino 示例]] / [[File:ESP32_U8g2_Example.zip|ESP32 示例]]
* [https://www.waveshare.net/w/upload/8/86/0.96inch-OLED-RaspberryPi.zip Raspberry Pi 例程]
** [[File:RaspberryPi_Python_OLED_Example.zip|Raspberry Pi Python 示例]]
* [https://www.waveshare.net/w/upload/3/3d/0.96inch-OLED-STM32.zip STM32 例程]
** [[File:STM32_HAL_OLED_Driver.zip|STM32 HAL 驱动示例]]
* [https://www.waveshare.net/w/upload/7/7e/0.96inch-OLED-Pico.zip Pico 例程]


> 若未启用文件上传,可将以上链接改为外部下载页(Git/网盘)。
== 选型 ==
 
== 选型信息 ==
* '''0.96inch OLED (A)''':横/弯脚排针
* '''0.96inch OLED (A)''':横/弯脚排针
* '''0.96inch OLED (B)''':竖/直脚排针(另页)
* '''0.96inch OLED (B)''':竖/直脚排针


== 修订记录 ==
== 修订记录 ==
* 2025-10-02:首次发布此页面
* 2025-10-02:初版整理
* 2025-MM-DD:补充通信模式电阻、尺寸图与示例代码链接
 
== 技术支持 ==
使用中如遇问题,请附:
# 模块正反面清晰照片(含焊盘/丝印)
# 接线图与所用主控型号
# 初始化/显示相关代码片段(或完整示例)
# 串口/日志关键信息
以便快速定位与协助。

2025年10月2日 (四) 14:32的版本


0.96inch OLED (A)

文件:Https://www.waveshare.net/w/upload/7/79/0.96inch OLED A.jpg
0.96inch OLED (A) 模块示意图
型号
0.96inch OLED (A)(横/弯脚排针)
对应版本
[OLED (B)](竖/直脚排针)
驱动芯片
SSD1306 / SSD1315
分辨率
128×64
接口
3-wire SPI / 4-wire SPI / I²C
默认模式
4-wire SPI(出厂默认)

产品简介

0.96 英寸 OLED 显示模块,内置 SSD1306/SSD1315 驱动,分辨率 128×64。支持 **3 线 SPI、4 线 SPI 与 I²C** 多种通信方式,适配 Raspberry Pi、Arduino、STM32、ESP32、Pico 等主控平台。 A 版为**横/弯脚排针**,B 版为**竖/直脚排针**;电气功能一致,仅排针方向不同。

产品参数

  • 供电电压:3.3V / 5V
  • 功耗:全亮约 20~30mA
  • 显示区域:21.7 mm × 11.2 mm
  • 颜色:单色(白/蓝/黄,上黄下蓝)
  • 接口模式:SPI/I²C
  • 兼容平台:Raspberry Pi / Arduino / STM32 / ESP32 / Pico

通信模式与电阻配置

模式 配置示例
3-wire SPI BS1=0 / BS0=1
4-wire SPI(默认) BS1=0 / BS0=0
I²C BS1=1 / BS0=0

管脚定义(A 版:横/弯脚排针)

引脚 名称 SPI 功能 I²C 功能
1 VCC 电源正(3.3V/5V) 电源正(3.3V/5V)
2 GND 电源地 电源地
3 DIN/SDA SPI MOSI I²C 数据
4 CLK/SCL SPI 时钟 I²C 时钟
5 CS 片选
6 DC 数据/命令选择
7 RST 复位 复位

接线示例

SPI
MOSI→DIN、SCK→CLK、CS→CS、DC→DC、RST→RST、VCC→3.3V/5V、GND→GND
I²C
SDA→SDA、SCL→SCL、VCC→3.3V/5V、GND→GND

示例代码

Arduino/ESP32 (U8g2)

#include <U8g2lib.h>
U8G2_SSD1306_128X64_NONAME_F_4W_SW_SPI u8g2(U8G2_R0, SCK, MOSI, CS, DC, RST);

void setup() {
  u8g2.begin();
}
void loop() {
  u8g2.clearBuffer();
  u8g2.setFont(u8g2_font_ncenB08_tr);
  u8g2.drawStr(0,12,"Hello OLED!");
  u8g2.sendBuffer();
}

Raspberry Pi (Python luma.oled)

from luma.core.interface.serial import i2c
from luma.oled.device import ssd1306
from PIL import Image, ImageDraw

serial = i2c(port=1, address=0x3C)
device = ssd1306(serial)

image = Image.new("1", device.size)
draw = ImageDraw.Draw(image)
draw.text((0,0), "Hello OLED!", fill=255)
device.display(image)

尺寸图

文件:Https://www.waveshare.net/w/upload/2/23/0.96inch OLED Dimension.png
尺寸图

常见问题

上电不亮?
OLED 无背光,需要初始化才会显示。
会不会烧屏?
长时间静态画面会产生残影,建议定期刷新。

资料下载

选型

  • 0.96inch OLED (A):横/弯脚排针
  • 0.96inch OLED (B):竖/直脚排针

修订记录

  • 2025-10-02:初版整理