备注:这篇文章2024年就创立了,到2026年才开始编写
介绍
SSD1306基本上长这样

(1)128 SEG 引脚和 64 COM 引脚,对应 128*64 像素点阵
(2)内置显存(GDDRAM):128*64 bit
(3)供电:VDD=1.65-3.3V(IC逻辑),VCC=7-15V(面板驱动)
模块(非裸屏)会提供 5V 转 3.3V 芯片;芯片内部有升压电路来支持面板驱动电压。
(4)通信接口:6800/8080 并口,SPI、I2C 接口
基本上是COG 工艺,用 ACF 导电胶直接压在 OLED 玻璃基板背面,肉眼看就是屏下方一条细细黑条
所以网上看到的SSD1306基本上是屏幕本身,屏幕本身集成好了SSD1306芯片
SSD1306的屏幕的引脚图
SSD1306的通讯模式

IIC

点击展开完整引脚图
| 引脚号 | 名称 | 类型 | 核心功能 | I2C 模式接线 | 4 线 SPI 模式接线 |
|---|---|---|---|---|---|
| 1 | C1P | 模拟 | 电荷泵电容正极 | 并联 1μF 到 C1N | 并联 1μF 到 C1N |
| 2 | C1N | 模拟 | 电荷泵电容负极 | 同上 | 同上 |
| 3 | C2P | 模拟 | 升压电容正极 | 并联 1μF 到 C2N | 并联 1μF 到 C2N |
| 4 | C2N | 模拟 | 升压电容负极 | 同上 | 同上 |
| 5 | VBAT | 电源 | 内部升压输入,接 VDD | 接 VDD | 接 VDD |
| 6 | VSS | 电源 | 全局数字地 | GND | GND |
| 7 | VDD | 电源 | 逻辑内核供电 (1.65~3.3V) | 3.3V | 3.3V |
| 8 | BS2 | 配置 | 总线选择位 2 | 接 GND (0) | 接 VDD (1) |
| 9 | BS1 | 配置 | 总线选择位 1 | 接 GND (0) | 接 GND (0) |
| 10 | BS0 | 配置 | 总线选择位 0 | 接 GND (0) | 接 GND (0) |
| 11 | CS# | 输入 | 片选,低有效 | 悬空 / VDD (永久使能) | MCU GPIO 输出 |
| 12 | RES# | 输入 | 硬件复位,低有效 | 可上拉 VDD,或接 MCU 复位 IO | 可上拉 VDD,或接 MCU 复位 IO |
| 13 | D/C#(SA0) | 输入 | I2C 地址位 / 数据命令切换 | SA0=0→地址 0x78;SA0=1→0x7A | MCU GPIO (1 = 数据,0 = 命令) |
| 14 | R/W#(WR#) | 输入 | 并行写使能 | 接 GND | 接 GND |
| 15 | E(RD#) | 输入 | 并行读使能 | 接 GND | 接 GND |
| 16 | D7 | 双向 | 并行最高位 | NC (悬空) | NC |
| 17 | D6 | 双向 | 并行位 6 | NC | NC |
| 18 | D5 | 双向 | 并行位 5 | NC | NC |
| 19 | D4 | 双向 | 并行位 4 | NC | NC |
| 20 | D3 | 双向 | 并行位 3 | NC | NC |
| 21 | D2 | 双向 | 并行位 2 | I2C_SDA (数据线) | NC |
| 22 | D1 | 双向 | 并行位 1 | I2C_SCL (时钟线) | SPI_MOSI |
| 23 | D0 | 双向 | 并行最低位 | NC | SPI_SCK |
| 24 | IREF | 模拟 | 亮度电流参考 | 串 120kΩ 到 GND (固定亮度) | 串 120kΩ 到 GND |
| 25 | VCOMH | 模拟 | COM 驱动高压输出 | 并联 0.1μF 到 GND | 并联 0.1μF 到 GND |
| 26 | VLSS | 模拟 | 模拟地 | 短接 VSS (GND) | 短接 VSS (GND) |
| 27 | VCC | 电源 | 屏高压驱动电源 (7~15V) | 电荷泵自升压,外部可悬空 | 电荷泵自升压,外部可悬空 |
| 28 | NC | 空脚 | 无电气连接 | 悬空不接线 | 悬空不接线 |
SPI

R1~R4 根据选择接口来使用
D0 和 D1 需要 4.7K 上拉电阻
当然他还支持8080和6800通讯协议,这里不多讲
SSD1306的指令

命令0X81:设置对比度。包含两个字节,第一个0X81为命令,随后发送的一个字节为要设置的对比度的值。这个值设置得越大屏幕就越亮。
命令0XAE/0XAF:0XAE为关闭显示命令;0XAF为开启显示命令。
命令0X8D:包含2个字节,第一个为命令字,第二个为设置值,第二个字节的BIT2表示电荷泵的开关状态,该位为1,则开启电荷泵,为0则关闭。在模块初始化的时候,这个必须要开启,否则是看不到屏幕显示的。
命令0XB0-B7:用于设置页地址,其低三位的值对应着GRAM的页地址。
命令0X00-0X0F:用于设置显示时的起始列地址低四位。
命令0X10-0X1F:用于设置显示时的起始列地址高四位。
最后
基本上这些屏幕他都是SSD1306
只是颜色不一样,加了膜而已,那种上面一半黄,一半蓝,也只是膜分开,并不是程序控制的

你在使用屏幕的时候,硬件选择好模式,然后选择对应的通讯协议进行通讯
基本上按照指令集进行通讯就可以了
