OLED模块

目录

一:OLED使用原理

硬件部分

SSD1306框图及引脚定义

选择通信接口

原理图

软件部分

4线SPI的传输时序

 3线SPI的传输时序

I2C的通信时序

执行逻辑框图

二:基本命令表

滚动命令表

寻址设置命令表

硬件配置命令表

时间及驱动命令

初始化过程(内部提供VCC)

三:使用部分

OLED显示汉字

显示图像

照片显示在屏幕上面

制作菜单选择界面

倒置屏幕

把0.96寸的移植到1.3寸的文件下里

四:问题解决

汉字编译出现错误

编码格式的转化

五:代码部分

 OLED写命令

OLED写数据

函数初始化

显示光标位置

六:扩展

1:填充更大的ACSLL

方法一:

方法二:


一:OLED使用原理

 

 0.96寸----显示原理

        OLED的显存分布情况。我们可以理解为:水平方向分布了128个像素点,垂直方向分布了64个像素点。而驱动芯片在点亮像素点的时候,是以8个像素点为单位的。官方的例程推荐的是垂直扫描的方式,也就是先画垂直方向的8个像素点(如下图所示),所以我们在画点的时候Y的取值为0-7,X的取值为0-127。页是芯片设计者为了方便将同一列的8个点阵编成一组,用一个8bit数表示,这样的8行128个数被称为1页。(一共8页,每页128个字节)

  

硬件部分

SSD1306框图及引脚定义


选择通信接口

设置相应的B0,B1,B2,可以选择我们不同的通信方式。

其他引脚在不同通信协议下的意义:

原理图

I2C:


可以看到B0,B1,B2.满足选择通信接口的要求

SPL接口原理图:

可以看到B0,B1,B2.满足选择通信接口的要求

软件部分

https://mp.csdn.net/mp_blog/creation/editor/138286468icon-default.png?t=O83Ahttps://mp.csdn.net/mp_blog/creation/editor/138286468

4线SPI的传输时序

        串行传输只允许写,不允许读。因此,只有两个功能:写命令、写数据

        E和R/W#时钟没用到,接低电平,CS#片选接低电平,表示始终选中此芯片

        D/C#:高电平:数据,低电平:命令

D0:是串行时钟,在每个上升沿时,从机采样数据

D1:数据输入线,时钟线上升沿,数据维持稳定,从机采样数据。一个时钟,只发送一位

 3线SPI的传输时序

D/C:     D/C是借用SDIN引脚指定的,一个时钟,发送一位,但是在每个字节之前,先发送一个位,表示D/C之后,再跟8个位,传输一个字节。      每次传输的一个字节,都有9个位:第一个是D心,指定此字节是命令还是数据,剩下8个,才是真正的字节。

I2C的通信时序

串行传输只允许写,不允许读

CSDN

        Co(连续模式位):Co = 1,每发送一个字节数据前都加一个Control byte(命令和数据可以灵活切换)

        Co = 0,在字节数据前只发送一个Control byte,之后全部都是字节数据

D/C#表示了我们选择写数据还是写命令。

D/C#=1-------写数据。

D/C#=0------写命令

执行逻辑框图


        左上角:128*64bit像素的点阵显示屏,以左上角为原点,向右为x正轴(0~127),向下为y正轴(0~63)

        左下角:128*8Byte的GDDRAM,x轴与点阵显示屏一样,y轴有所不同,8位一组分为一页,范围为PAGE0 ~ PAGE7,共8页。每传输一个字节数据,将其展开,纵向排列(LSB在上,MSB在下),一位控制一个像素点

        每写完一个字节数据后,内部的地址指针自动向右移动一个单位。当写到页的最后一字节时,地址指针默认回到页的起始位置,也可以通过配置寻址模式实现自动换页,换到下一页的开头

        如果想要实现Y坐标的任意指定,需要读取GGDRAM,但串行传输只允许写数据,那需要在程序中定义缓存数组来实现:先读写缓存数组,最后一起更新到屏幕的GDDRAM中

二:基本命令表

滚动命令表

寻址设置命令表

硬件配置命令表

0.96'OLED是一款高性能的显示设备。我们提供的资料里详细介绍YFROBOT 0.96’OLE(带字库)的使用方法,并提供详细的例程详解。该模块特点: 三色可选,模块有两种单色和黄蓝双色两种颜色可选,单色为纯白色和纯蓝色,双色为黄蓝双色; 超小尺寸,显示尺寸为0.96 寸,模块尺寸为27mm(长)*26mm(宽)*4mm(高); 高分辨率,分辨率为128*64; 两种接口模式,4 线串行SPI 接口模式,IIC 接口模式; 带字库芯片,可显示标准的国标简体(GB2312)汉字、8*16 点ASCII 粗体字库、7*8点ASCII 字库、5*7 点ASCII 字库; 兼容3.3V~5V 电压。 0.96’OLED 模块通过外部排针和单片机通讯,各引脚详细描述如下: 序号名称 说明 1 GND 地 2 VCC 电源,3.3V~5V 3 CLK 4线ISP接口模式:时钟线IIC接口模式:时钟线GT20L16S1Y的时钟线 4 DIN 4线ISP接口模式:串行数据线IIC接口模式:数据线GT20L16S1Y的串行数据输入端口 5 D/C 4线ISP接口模式:命令/数据标志位IIC接口模式:接GND 6 CS1 4线ISP接口模式:OLED片选IIC接口模式:接GND 7 SO GT20L16S1Y的串行数据输出端口 8 CS2 GT20L16S1Y的片选端口 附件包含以下资料: Aarduino OLED显示(实验1:HelloWord;实验2:贪吃蛇) STM32 OLED显示 资料手册 ASCII码表.pdf; GB2312简体中文编码表.pdf; GT20L16S1Y用户手册V35.pdf; SAS1-9046-B UG-2864HSWEG01-Univision.pdf; SSD1306-Revision 1.1 (Charge Pump).pdf 0.96'OLED(带字库)使用手册V1.0.pdf 字符图片取模软件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值