OLED原理、时序和操作+自己源码程序

本文介绍了OLED的基本概念和技术特点,并详细解释了SSD1306控制器的工作原理及其与OLED屏的交互过程。包括模块参数、工作模式选择、读写时序、显存分布及初始化过程等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载博客:http://blog.youkuaiyun.com/abap_brave/article/details/53022540

一,OLED简介

OLED,即有机发光二极管,采用非常薄的有机材料图层和玻璃基板制成 
当有电流通过时,有机材料会发光,OLED屏幕可视角度大,节省电能

优点:分辨率高,自发光,不需背光源,对比度高,厚度薄,视角广,反应速度快,温度范围广,制造及制程简单

缺点:价格贵,尺寸难以大型化(价钱随尺寸几何倍数增长)

用途:可穿戴智能设备显示,MP3显示灯

oled应用

OLED分为两部分:原理,时序和操作 + OLED显示实验


二,ALINETEK 0.96寸OLED模块参数

OLED模块

1)双色:1/4黄色 + 3/4蓝色
2)尺寸:0.96存.模块尺寸:27mm*26mm
3)分辨率:128*64
4)支持接口方式4种(通信方式)
    1:6800,8080并行接口
    2:4线串行SPI
    3:2线IIC
5)模块工作电压3.3V

三,OLED模块原理图

OLED模块原理图

如图:
     BS1和BS2与OLED的连接方式
     BS1与BS2各有上中下三个引脚,LP与GND相连,HP与VCC相连
     OLED的13-25引脚为外接引脚,对应开发板的排针组P1
     OLED其他引脚暂不介绍,如图连接处理即可

四.OLED工作模式选择

OLED工作模式选择

通过模块BS1/BS2设置OLED工作模式,关系如下:

BS1/BS2设置OLED工作模式

由OLED模块图片背部焊点可以看到,默认TP引脚与VCC焊接 
即BS1=1,BS2=1,为8080并口通信方式


五,8080并口读写时序

并口写时序:

并口写时序

因为要写数据,由WR控制,所以RD设置为高电平
DC: 1,写数据 0 写命令
CS:要操作OLED前,先进行片选,拉低CS引脚,操作完成后拉高
WR:写数据,在WR的上升沿,使数据写入到SSD1306控制器内

并口读时序:

并口读时序

因为要读数据,由RD控制,所以WR设置为高电平
DC: 1,读数据 0 读命令
CS:要操作OLED前,先进行片选,拉低CS引脚,操作完成后拉高
RD:读数据,在RD的上升沿,使数据锁存到数据线D[7:0]上

总结:

无论读操作还是写操作:
     DC=1 数据操作 , DC=0 命令操作
     操作OLED前拉低片选CS引脚
     都是在上升沿进行数据采集
写操作:
     WR的上升沿,数据/命令写入SSD1306
读操作:
     RD的上升沿,数据/命令锁存到数据线D[7:0]

六,OLED模块显存

SSD1306显存为128*64bit大小, SSD1306将全部显存分为8页,每页128字节

SSD1306分页

OLED相当于64行128列点阵,每个像素点,0点亮,1熄灭 
OLED将纵向64行分为8页,每页8行


七,程序实现

采用每次全量更新的策略 
基于OLED128*64bit的分布,程序内部建立一个缓存数组128*8字节 
每次修改时,先修改缓存对应的值,修改完成后,一次性写入OLED的GRAM刷新显示


八,SSD1306命令

SSD1306命令

0:OLED设置对比度
     发送两个字节
     第一个字节为命令-0x81
     第二个字节为设置对比度值,值越大屏幕越亮(0X00-0XFF)

1:关闭/开启OLED显示
     发送一个命令字节,高七位固定,最低位X0=0关闭显示,X0=1开启显示
     0xAE:关闭显示
     0xAF:开启显示

2:关闭/开启电荷泵
     发送两个字节
     第一个字节为命令-0x8D
     第二个字节为设置电荷泵开关
          位0,1,4,5,6固定,位6位7随意,位2控制电荷泵开关
          A2=0关闭电荷泵
          A2=1开启电荷泵
     注意:在模块初始化时,必须开启,否则看不到屏幕显示

3:0xB0-0xB7 设置页地址
     发送一个字节,高5位固定
     位0-位2 , X[2:0]共3位, 值范围0-7对应页0-7地址(共8页)

4:0x00-0x0F设置列地址起始低四位
     高四位固定
     低四位设置列地址起始低四位

5:0x10-0x1F设置列地址起始高四位
     高四位固定
     低四位设置列地址起始高四位

九,OLED初始化过程

1,SSD1306复位 - 硬复位RST(RES)引脚
2,驱动IC初始化-代码由OLED供应商提供
3,开启显示-设置显示命令
4,清0显示-点阵全灭复位显示
5,开始显示-将要显示的内容写入GRAM

实例驱动代码讲解:--参考原子程序

1)代码初始化:--一般芯片参考手册有





注意:


竖向显示取模方式:


显示字符串水平显示:



### OLED显示屏幕时序图、硬件连接与工作机制 #### 1. OLED 显示屏的工作机制 OLED(有机发光二极管)显示屏是一种自发光技术,不需要背光源即可实现图像显示。它的基本工作原理是通过电流驱动有机材料发出光线[^1]。每个像素点由红、绿、蓝三种子像素组成,通过对这些子像素施加不同的电压或电流,可以调节它们的亮度颜色,从而形成完整的图像。 #### 2. SPI I2C 接口时序图 在 STM32 控制 OLED 的应用中,通常会使用 SPI 或 I2C 接口进行通信。以下是两种接口的基本时序描述: - **SPI 时序** SPI 是一种同步串行外设接口,具有主从模式特性。其典型时序包括 SCLK(时钟信号)、MOSI(主机发送/从机接收数据线)、MISO(主机接收/从机发送数据线)以及 CS(片选信号)。对于 OLED 显示屏,主要涉及 MOSI 数据传输与时钟同步操作。具体时序如下: - 当 CS 拉低时,表示设备被选中。 - 主控芯片按照设定频率逐位发送命令或数据到 OLED 屏幕。 - 发送完成后拉高 CS 完成一次通信周期[^3]。 ```plaintext CS ----|_____|-----> Low 表示选通 SCLK --|__|--|__|--...--|__|--> 同步时钟脉冲 MOSI --|D0|-|D1|-...-|Dn|--> 数据流 ``` - **I2C 时序** I2C 协议采用两根双向总线——SDA(数据线) SCL(时钟线),支持多主多从架构。启动条件为当 SDA 在 SCL 高电平时发生下降沿;停止条件则相反,在 SCL 高电平时 SDA 上升沿触发。每帧数据包包含地址字段实际有效负载部分。 ```plaintext SCL ---|___|---|___|---... SDA ---|_S_|Addr|Data|P--- Start Addr Data Stop ``` #### 3. 硬件连接方式 针对 STM32 平台开发 OLED 应用程序,推荐以下标准接法表作为参考依据[^2]: | 功能引脚 | 描述 | 连接到 STM32 引脚 | |----------|--------------------|---------------------| | VCC | 正电源输入 | +3.3V | | GND | 地 | GND | | DIN/SCK | 数据输入 / 时钟 | PA5 (SPI1_SCK) | | DC | 数据/指令选择 | PB8 | | RES | 复位端 | PB9 | | CS | 片选信号 | PA4 (SPI1_NSS) | 注意:如果选用的是 I2C 方式,则需调整对应 GPIO 设置并启用相应库函数初始化过程。 #### 4. 实现复杂功能的技术要点 为了完成诸如滚动文字等功能需求,除了掌握基础协议之外还需要考虑以下几个方面因素: - 刷新率优化策略: 提供流畅视觉体验的同时减少资源消耗; - 缓存管理技巧: 使用双缓冲区交替更新画面内容避免闪烁现象; - 图形绘制算法研究: 如字体渲染引擎构建等高级主题探讨. --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值