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留言 | 贡献
无编辑摘要
 
(未显示同一用户的3个中间版本)
第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) 模块示意图(请替换为你的图片文件名)]]
<div style="text-align:center;">
  https://www.waveshare.com/w/upload/5/5d/0.96inch-OLED-A_l.jpg
</div>


; 型号
; 型号 :0.96inch OLED (A)(横/弯脚排针)
: 0.96inch OLED (A)(横/弯脚排针)
; 对应版本 :[https://www.waveshare.com/wiki/0.96inch_OLED_(B) 0.96inch OLED (B)](竖/直脚排针)
; 对应版本
; 驱动芯片 :SSD1306
: [[0.96inch OLED (B)|0.96inch OLED (B)]](竖/直脚排针)
; 分辨率 :128×64
; 驱动芯片
; 接口 :3-wire SPI / 4-wire SPI / I²C
: SSD1306 / SSD1315(按实物填写)
; 默认模式 :4-wire SPI(出厂默认)
; 分辨率
: 128×64
; 接口
: 3-wire SPI / 4-wire SPI / I²C
; 默认模式
: 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 驱动,分辨率 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(以官方/实测为准)
* 通信接口:3-wire SPI / 4-wire SPI / I²C
* 有效显示区:约 21.7 mm × 11.2 mm(0.96")
* 分辨率:128×64
* 显示颜色:单色(白/黄/蓝,或“上黄下蓝”等,请据实填写)
* 显示尺寸:0.96inch
* 接口模式:3-wire SPI / 4-wire SPI / I²C
* 显示颜色:上黄下蓝(1/4 + 3/4 蓝)
* 兼容平台:Raspberry Pi / Arduino / STM32 / ESP32 / Pico
* 适配平台:Raspberry Pi / Arduino / STM32 / ESP32 / Pico
* 工作温度:-20℃ ~ +70℃(如有)


> 提示:OLED 长时间固定画面可能产生轻微残影,建议周期性刷新或启用屏保。
== 硬件配置与拨阻 ==
 
<div style="text-align:center;">
== 通信模式与焊盘配置 ==
  https://www.waveshare.com/w/upload/9/93/0.96inch_OLED_Hardware.png
模块背面通常通过两颗选择电阻(示例:BS1、BS0 或 R1、R2)切换通信方式(以及 I²C 地址)。出厂默认 **4-wire SPI**。实际丝印以 PCB 为准。
</div>


{| class="wikitable"
{| class="wikitable"
! 通信模式 !! 选择位示例(按你的丝印改) !! 备注
! 模式 !! BS1/BS0
|-
|-
| 3-wire SPI || BS1=0 / BS0=1 || D/C 通过串行命令位区分
| 3-wire SPI || 0 / 1
|-
|-
| 4-wire SPI(默认) || BS1=0 / BS0=0 || 常用,速率较高
| 4-wire SPI(默认) || 0 / 0
|-
|-
| I²C || BS1=1 / BS0=0 || 接线简单;地址随焊盘/电阻改变
| I²C || 1 / 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 || 数据/命令选择 || (I²C 时可作地址位,接 GND=0x3C)
|-
|-
| 7 || RST / RES || 复位(低有效) || 复位(低有效)
| 7 || RST || 复位 || 复位
|}
|}


== 典型接线 ==
== 接线示例(Raspberry Pi,4-wire SPI) ==
; 4-wire SPI(默认)
<div style="text-align:center;">
: MCU → OLED:MOSI→DIN、SCK→CLK、CS→CS、D/C→DC、RST→RST、3V3/5V→VCC、GND→GND
  https://www.waveshare.com/w/upload/f/fe/0.96inch_OLED_rpi.png
</div>
 
; SPI
: MOSI→DIN、SCLK→CLK、CE0→CS、GPIO25→DC、GPIO13→RES、VCC→3.3V、GND→GND
; I²C
; I²C
: MCU → OLED:SDA→SDA、SCL→SCL、3V3/5V→VCC、GND→GND(并按焊盘配置地址)
: SDA→SDA、SCL→SCL、VCC→3.3V、GND→GND(DC 脚接地则地址 0x3C)


> SPI 速率可较高但占用更多 IO;I²C 接线简单但速率相对较低。
== 示例代码 ==
 
=== Arduino/ESP32(U8g2) ===
== 快速上手 ==
以下示例仅为“壳子”,请替换为你自己的初始化/库链接/代码片段。
 
=== Arduino / ESP32(U8g2 或 Adafruit SSD1306) ===
<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,
void setup(){ u8g2.begin(); }
  /* clock*/  SCK_PIN, /* data*/ MOSI_PIN, /* cs*/ CS_PIN,
void loop(){
  /* dc*/    DC_PIN, /* reset*/ RST_PIN
);
 
void setup() {
  u8g2.begin();
}
 
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,I²C) ===
<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 请改
device = ssd1306(serial)


device = ssd1306(i2c(port=1, address=0x3C))
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>
// 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(约)
* 排针形式: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://files.waveshare.com/upload/7/71/0.96inch-OLED-UserManual.pdf 用户手册(PDF)]
* [[File:0.96inch-OLED-Schematic.pdf|原理图(PDF)]]
* [https://files.waveshare.com/upload/d/dc/0.96inch-OLED-Schematic.pdf 原理图(PDF)]
* 示例代码:
* [https://files.waveshare.com/upload/e/ec/SDD1306-30pin.pdf SSD1306 数据手册(PDF)]
** [[File:Arduino_SSD1306_Example.zip|Arduino 示例]] / [[File:ESP32_U8g2_Example.zip|ESP32 示例]]
** [[File:RaspberryPi_Python_OLED_Example.zip|Raspberry Pi Python 示例]]
** [[File:STM32_HAL_OLED_Driver.zip|STM32 HAL 驱动示例]]


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


== 选型信息 ==
== 常见问题 ==
* '''0.96inch OLED (A)''':横/弯脚排针
; 上电不亮?
* '''0.96inch OLED (B)''':竖/直脚排针(另页)
: OLED 无背光,需要初始化并刷屏后才会有显示。
:
; 有残影/烧屏风险吗?
: 长时间显示静态画面会产生残影,建议定期刷新或做屏保。


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

2025年10月2日 (四) 17:01的最新版本


0.96inch OLED (A)

 0.96inch-OLED-A_l.jpg
型号 :0.96inch OLED (A)(横/弯脚排针)
对应版本 :0.96inch OLED (B)(竖/直脚排针)
驱动芯片 :SSD1306
分辨率 :128×64
接口 :3-wire SPI / 4-wire SPI / I²C
默认模式 :4-wire SPI(出厂默认)

产品简介

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

产品参数

  • 供电电压:3.3V / 5V
  • 通信接口:3-wire SPI / 4-wire SPI / I²C
  • 分辨率:128×64
  • 显示尺寸:0.96inch
  • 显示颜色:上黄下蓝(1/4 黄 + 3/4 蓝)
  • 适配平台:Raspberry Pi / Arduino / STM32 / ESP32 / Pico

硬件配置与拨阻

 0.96inch_OLED_Hardware.png
模式 BS1/BS0
3-wire SPI 0 / 1
4-wire SPI(默认) 0 / 0
I²C 1 / 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 数据/命令选择 (I²C 时可作地址位,接 GND=0x3C)
7 RST 复位 复位

接线示例(Raspberry Pi,4-wire SPI)

 0.96inch_OLED_rpi.png
SPI
MOSI→DIN、SCLK→CLK、CE0→CS、GPIO25→DC、GPIO13→RES、VCC→3.3V、GND→GND
I²C
SDA→SDA、SCL→SCL、VCC→3.3V、GND→GND(DC 脚接地则地址 0x3C)

示例代码

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,I²C)

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

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

资料下载

选型

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

常见问题

上电不亮?
OLED 无背光,需要初始化并刷屏后才会有显示。
有残影/烧屏风险吗?
长时间显示静态画面会产生残影,建议定期刷新或做屏保。

修订记录

  • 2025-10-02:初版整理