1.3inch OLED 用户手册 
 
 
1.3inch OLED 
用户手册 
1.  产 品 特 性  
表  1:  产品参数 
驱动芯片 
支持接口 
分辨率 
显示尺寸 
外形尺寸 
颜色 
视角 
工作温度 
存储温度 
2.  实 验 现 象  
SH1106 
3-wire SPI、4-wire SPI、I2C 
128*64 
1.3 inch 
29mm*33mm 
黄蓝 
>160° 
-20℃~70℃ 
-30℃~80℃ 
本手册使用 Waveshare Open103R(主控芯片 STM32F103R)开发板为例介绍演示实验效果。 
2.1. 硬 件 设 置  
OLED 模块提供三种驱动接口:分别为 3-wire SPI、4-wire SPI 和 I2C 接口,模块出厂设置 BS0/BS1
置为 0/0,选通 4-wire SPI。 
通过 BS0/BS1 的跳线配置模块工作模式和引脚功能。(需要用到焊接器材,在没有我司工作人员
指导下擅自更改,将视为自动放弃保修。配置方法参考下表)。 
表  2.  硬件配置 
标识 
BS1/BS0  CS  D/C  DIN 
CLK 
模式 
3-wire SPI  0/1 
CS  0 
MOSI  SCLK 
4-wire SPI  0/0 
CS  D/C 
I2C 
1/0 
0 
0/1 
SDA 
SCL 
 
版本:V2.4,日期:2015 年 5 月 15 日 
1 
微雪电子WAVESHARE ELECTRONICS
1.3inch OLED 用户手册 
 
 
2.2. 软 件 设 置  
用 Keil 打开工程文件.\IDE\ OLED.uvproj,定位到以下字段,把#define INTERFACE_4WIRE_SPI 前面
的//(双斜杠)去掉。 
//#define INTERFACE_3WIRE_SPI 
//3-wire SPI 
#define INTERFACE_4WIRE_SPI 
//4-wire SPI 
//#define INTERFACE_IIC 
//I2C 
编译通过之后,下载程序到 Open103R 开发板。 
注意:如果模块配置为 3-wire SPI 或者 I2C 接口,只需把以上对应字段的//(双斜杠)去掉即可。 
2.3. 硬 件 连 接  
把 OLED 模块连接到 Open103R 开发板 SPI2 接口。上电之后,实验效果如下图: 
图  1:  实验验证效果 
 
版本:V2.4,日期:2015 年 5 月 15 日 
 
2 
微雪电子WAVESHARE ELECTRONICS
1.3inch OLED 用户手册 
 
3.  SH1106 OLED 4-wire SPI 和 I2C 接 口 的 介 绍  
8080 并行接口,6800 并行接口,SPI 和 I2C 接口可以通过设置 IM0~IM2 选通,参见下表: 
表  3:  接口设置表 
 
 
(引用自 SH1106_V2.3.pdf  的 Functional Description 章节) 
注意:当选通 SPI 串口或者 I2C 接口,建议把 D7~D2 连接到 VDD1 或者 VSS。也允许把 D7~D2 悬
空。 
虽然 SH1106 芯片提供了 5 种驱动接口,但是 OLED 模块本身的跳线只提供 3 种驱动接口设置
(3-wire SPI  ,4-wire SPI 和 I2C。IM2 硬件置 1)。BS0/BS1 分别与 IM0/IM1 对应。 
以下章节简单介绍中 4-wire SPI 和 I2C 接口的驱动的实现方法,详细请参考《SH1106_V2.3.pdf》。 
3.1. 4-wire SPI 接 口 介 绍  
串行接口包括串行时钟 SCL,串行数据 SI, A0 和 CS。在每个 SCL 上升沿,SI 会以 D7, D6,„D0 的
顺序移入 8 位移位寄存器。每 8 个时钟周期,A0 会采样一次,并且在相同时钟周期内,移位寄
存器的数据字节会写入到显示数据的 RAM(A0=1)或者命令寄存器(A0=0)中。参见下表: 
表  4: SPI 接口设置表 
(引用自 SH1106_V2.3.pdf  的 4 Wire Serial Interface 章节) 
注意:表中“-”引脚,必须总是保持高电平或者低电平。建议把 D7~D2 连接到 VDD1 或者 VSS。
 
也允许把 D7~D2 悬空。 
当 CS 为高电平时,SPI 接口初始化。此时 SCL 脉冲或者 SDI 数据无效。CS 下降沿使能串口并指示
数据传输开始。CS 一直保持低电平时,SPI 接口同样可以正常工作,但并不推荐这样做。 
版本:V2.4,日期:2015 年 5 月 15 日 
3 
微雪电子WAVESHARE ELECTRONICS
 
 
 
1.3inch OLED 用户手册 
 
图  2: 4-wire SPI 数据传输时许 
  当芯片未处于活动状态时,移位寄存器和计数器重置为初始状态。 
  在 SPI 串口模式下,无法读取。 
  在线端反射和外部噪声的情况下,应注意 SCL 信号。建议在实际设备上重新检查操作。 
3.2. SH1106 OLED I2C 接 口 介 绍  
SH1106 芯片可以通过标准 I2C 总线传输数据,但是只能以从机模式通信。指令或者 RAM 数据可
写入到芯片中,并且可从芯片读取状态和 RAM 数据。 
表  5: SH1106 OLED I2C    接口介绍 
(引用自 SH1106_V2.3.pdf  的 I2C-bus Interface 章节) 
注意:表中“-”引脚,必须总是保持高电平或者低电平。建议把 D7~D2 连接到 VDD1 或者 VSS。
也允许把 D7~D2 悬空。 
在 I2C 总线应用中,CS 信号可以一直处于拉低状态。I2C  总线用于不同  IC 或模块之间的双向、
两线通讯。两线指的是串行数据线(SDA)和串行时钟线(SCL)。两线都必须通过上拉电阻拉高。数
据传输只在总线不繁忙的情况下才启动。 
注意:上拉电阻提供的正电压必须等于 VDD1。 
I2C 位传输 
每个时钟周期都会传输一个数据位,在脉冲为高期间,SDA 线数据必须保持稳定。这是因为传输
数据的突变可能会被芯片认为是控制信号。 
版本:V2.4,日期:2015 年 5 月 15 日 
4 
微雪电子WAVESHARE ELECTRONICS
1.3inch OLED 用户手册 
 
 
图  3:  位传输时序图 
(引用自 SH1106_V2.3.pdf  的 I2C-bus Interface 章节) 
启动和终止条件 
在总线不繁忙的情况下,数据和时钟都保持高电平。数据行由高向低转变的过程中,SCL 高电平
定义为启动条件(S)。数据行由低向高转变的过程中,SCL 高电平定义为结束条件(P)。 
图  4:  开始和终止条件 
 
 
确认信号 
每 8 个字节都跟随有一个确认位。这个确认位是高电平的,在主机生成一个额外确认时钟脉冲的
时候,由发送器传送给总线。已经定址的从接收器在接收到每个字节之后,必须生成一个确认信
号。同样,主接收器在接收到每个由从发送器的时钟输出时,必须生成一个确认信号。 
版本:V2.4,日期:2015 年 5 月 15 日 
5 
微雪电子WAVESHARE ELECTRONICS
1.3inch OLED 用户手册 
 
图  5:  确认信号 
 
 
I2C 协议 
SH1106  支持读写访问。R/W 位是从属地址的一部分。在任何数据传输到 I2C 总线之前,应答设
备须先被寻址。两个 7 位从属地址(0111100  和  0111101)将保留给 SH1106。 
从属地址的最低有效位是通过连接 SA0 的输入为逻辑 0(VSS)或者 1(VDD1)来设置的。I2C 总线协
议如下图所示。 
图  6: I2C 协议 
(参见 SH1106_V2.3.pdf  的 Protocol 章节) 
版本:V2.4,日期:2015 年 5 月 15 日 
 
6 
微雪电子WAVESHARE ELECTRONICS