00. 目录

文章目录

  • 00. 目录
  • 01. OLED概述
  • 02. OLED特性参数
  • 03. OLED模块描述
  • 04. OLED模块原理图
  • 05. OLED模块引脚说明
  • 06. OLED模块使用
  • 07. 附录
  • 08. 声明

01. OLED概述

OLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(OrganicElectroluminesence Display, OELD)。OLED 由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。

LCD 都需要背光,而 OLED 不需要,因为它是自发光的。这样同样的显示,OLED 效果要来得好一些。以目前的技术,OLED 的尺寸还难以大型化,但是分辨率确可以做到很高。

02. OLED特性参数

ATK-0.96’ OLED 模块是 ALIENTEK 推出的一款小尺寸(0.96 寸)、高亮、自带升压电路的高性能 OLED 显示模块,分辨率为 128*64,该模块采用原装维信诺高亮 OLED 屏,采用SSD1306 驱动 IC,该芯片内部集成 DCDC 升压,仅需 3.3V 供电,即可正常工作,无需用户再添加升压 DCDC 电路。

模块支持:8 位 6800 并口、8 位 8080 并口、IIC 以及 4 线 SPI 等 4 种通信接口,通过模块背面的 BS1,BS2 焊盘,可以自行设置模块的接口方式。默认为:8 位 8080 并口。该模块各参数如表 1.1 和表 1.2 所示:

ATK0.96’ OLED 模块支持多种通信接口,通过模块背面的 BS1,BS2,可以自行设置模块的通信接口方式,见表 1.3:

03. OLED模块描述

ATK-0.96’ OLED 模块是 ALIENTEK 推出的一款高性能 OLED 显示模块,尺寸小巧(27mm*26mm),结构紧凑,模块通过 1 个 2*8P 的 2.54mm 间距排针与外部连接,模块外观如图 2.1.1 所示:

该模块具有如下特点:
 双色可选,提供纯蓝色或黄蓝双色两种模块
 高分辨率,分辨率为:128*64
 超小尺寸,OLED 显示屏为 0.96 寸,模块尺寸仅为 27mm*26mm
 多种接口方式,提供 8086 并口、6800 并口、4 线 SPI 和 IIC 等五种接口方式
 集成 DCDC,无需外部高压,仅需提供 3.3V 电源,即可正常工作
图 2.1.1 中,左侧的图片是模块的背面图,右侧的是正面图。

04. OLED模块原理图

05. OLED模块引脚说明

ATK-0.96’ OLED 模块通过 2*8 的 2.54 排针同外部单片机通信,各引脚的详细描述如下表所示

温馨提示

模块在使用 IIC 模式或者 4 线 SPI 模式的时候,是不支持读操作的,所以如果你需要读操作,只能选择 6800 或者 8080 并口模式。模块默认是:8080 并口模式,大家根据自己选择的接口模式,来接线。

06. OLED模块使用

ATK-0.96’ OLED 模块的控制器是 SSD1306,支持多种接口方式,我们模块支持 4 种连接方式,这里我们介绍其中 8080 并口模式。

8080并口模式

ATK-0.96’ OLED 模块支持 8 位 8080 并口模式,总共需要 13 根信号线通信,这些信号线如下:

  • CS:OLED 片选信号。
  • WR(RW):向 OLED 写入数据。
  • RD:从 OLED 读取数据。
  • D[7:0]:8 位双向数据线。
  • RST(RES):硬复位 OLED。
  • DC:命令/数据标志(0,读写命令;1,读写数据)。

模块的 8080 并口读/写的过程为:先根据要写入/读取的数据的类型,设置 DC 为高(数据)/低(命令),然后拉低片选,选中 SSD1306,接着我们根据是读数据,还是要写数据置RD/WR 为低,然后:

在 RD 的上升沿, 使数据锁存到数据线(D[7:0])上;

在 WR 的上升沿,使数据写入到 SSD1306 里面;

SSD1306 的 8080 并口写时序如图所示:

SSD1306 的 8080 并口读时序如图 2.3.1.2 所示:

SSD1306 的 8080 接口方式下,控制脚的信号状态所对应的功能如表所示:

注 1:H 代表高电平(VCC),L 代表低电平(GND),↑代表上升沿。

在 8080 方式下读数据操作的时候,我们有时候(例如读显存的时候)需要一个假读命(Dummy Read),以使得微控制器的操作频率和显存的操作频率相匹配。在读取真正的数据之前,由一个的假读的过程。这里的假读,其实就是第一个读到的字节丢弃不要,从第二个开始,才是我们真正要读的数据。

一个典型的读显存的时序图,如图所示:

可以看到,在发送了列地址之后,开始读数据,第一个是 Dummy Read,也就是假读,我们从第二个开始,才算是真正有效的数据。

显存

SSD1306 的显存总共为 128*64bit 大小,SSD1306 将这些显存分为了 8 页,其对应关系如表所示:

SSD1306 的每页包含了 128 个字节,总共 8 页,这样刚好是 128*64 的点阵大小。因为每次写入都是按字节写入的,这就存在一个问

题,如果我们使用只写方式操作模块,那么,每次要写 8 个点,这样,我们在画点的时候,就必须把要设置的点所在的字节的每个位都搞

清楚当前的状态(0/1?),否则写入的数据就会覆盖掉之前的状态,结果就是有些不需要显示的点,显示出来了,或者该显示的没有显

示了。这个问题在能读的模式下,我们可以先读出来要写入的那个字节,得到当前状况,在修改了要改写的位之后再写进 GRAM,这样就

不会影响到之前的状况了。但是这样需要能读 GRAM,对于 4 线 SPI 模式或者 IIC 模式来说,模块是不支持读的,而且读->改->写的方式

速度也比较慢。

我们推荐采用的办法是在单片机的内部建立一个 OLED 的 GRAM(需要 128*8 个字节),在每次修改的时候,只是修改单片机上的 GRAM(实际上就是 SRAM),在修改完了之后,一次性把单片机内部的 GRAM 写入到 OLED 的 GRAM。当然这个方法也有坏处,就是对于那些 SRAM 很小的单片机(比如 51 系列)就比较麻烦了,如果内存不够,那就推荐还是采用并口模式,这样可以节约内存。

指令

SSD1306 的指令比较多,这里我们仅介绍几个比较常用的命令

第一个命令为 0X81,用于设置对比度的,这个命令包含了两个字节,第一个 0X81 为命令,随后发送的一个字节为要设置的对比度的值。这个值设置得越大屏幕就越亮。

第二个命令为 0XAE/0XAF。0XAE 为关闭显示命令;0XAF 为开启显示命令。

第三个命令为 0X8D,该指令也包含 2 个字节,第一个为命令字,第二个为设置值,第二个字节的 BIT2 表示电荷泵的开关状态,该位为 1,则开启电荷泵,为 0 则关闭。在模块初始化的时候,这个必须要开启,否则是看不到屏幕显示的。

第四个命令为 0XB0~B7,该命令用于设置页地址,其低三位的值对应着 GRAM 的页地址。

第五个指令为 0X00~0X0F,该指令用于设置显示时的起始列地址低四位。

第六个指令为 0X10~0X1F,该指令用于设置显示时的起始列地址高四位。

其他命令,我们就不在这里一一介绍了,大家可以参考 SSD1306 datasheet 的第 28 页。从这页开始,对 SSD1306 的指令有详细的介绍。

07. 附录

7.1 【STM32】STM32系列教程汇总

网址:【STM32】STM32系列教程汇总

08. 声明

该教程参考了正点原子的《STM32 F4 开发指南》

【STM32】OLED简介相关推荐

  1. STM32 —— OLED 屏幕入门

    STM32 -- OLED 屏幕入门 OLED 屏幕官方历程虽然没有给出 STM32C8T6 的对应版本,这里使用与我们使用的芯片最接近的芯片的历程 STM32RCT6 的官方历程 简介 OLED 屏 ...

  2. STM32—OLED显示屏

    3. OLED显示屏 本文来自于<STM32--江科大>的笔记整理. 文章目录 3. OLED显示屏 3.1 OLED简介 3.2 OLED驱动函数 代码: OLED.h OLED.c O ...

  3. cebemax hal库 stm32 OLED移植 解析

    cebemax hal库 stm32 OLED移植 序言: 这是一篇对于作者对于将OLED的驱动代码移植成hal库的文章,会有完整的过程,后面自然也会有完整的代码,希望能够帮到大家,同时也是做一个记录 ...

  4. STM32 IO 简介

    STM32 IO 简介 1.IO介绍 2.仿真与下载 1.IO介绍 STM32 的 IO 口可以由软件配置成如下 8 种模式: 1. 输入浮空 2. 输入上拉 3. 输入下拉 4. 模拟输入 5. 开 ...

  5. 单片机搭建环境烧录方法_万物互联-stm32单片机简介、烧录、编程及其项目环境搭建...

    万物互联-stm32单片机简介.烧录.编程 前言:stm32单片机这里给出简单介绍,给不了解的朋友普及下硬件端的基本知识,叙述的较为简单,想深入研究的朋友可以去一些官方网站.论坛.博客汲取知识.最下端 ...

  6. STM32+OLED屏显应用实例

    文章目录 一.SPI介绍 1.SPI的定义 2.SPI的连接方式 3.SPI的通讯过程 二.OLED介绍 三.显示自己的学号和姓名 3.1 文字取模 3.2 编写代码 3.3 实验结果 四.显示AHT ...

  7. STM32+OLED巧妙显示汉字英文

    STM32+OLED巧妙显示汉字英文 目标:实现OLED_Print函数,可以在OLED屏幕上显示中英文和符号混合的任意字符串 汉字编码原理 ASCII码显示的原理这里不再说明,一般的OLED例程都有 ...

  8. 1. stm32 mcu简介

    1. stm32 mcu简介 1.1 stm32 mcu结构 1.2 STM32 MCU存储器映像 1.3 STM32 MCU系统时钟树 1.4 Cortex-M3简介 1.1 stm32 mcu结构 ...

  9. P9[4-1]OLED显示屏(内含:1.调试方式+2.OLED简介+3.硬件电路+4.驱动函数+5.软件代码部分+6.代码部分注释)

    1.调试方式: 注:串口调试可以理解为将电脑用作单片机的显示屏.优点:电脑可以显示图像等,功能强大. 缺点:需要电脑,不方便,且多为信息流的方式.后面的信息会覆盖前面的信息. 显示屏调试:优点:可以覆 ...

最新文章

  1. c 实现 php 数组,C语言实现数组功能
  2. 如何从JavaScript对象中删除项目[重复]
  3. 分数统计C语言,分数统计编程 求助!!!!!!!!!!!!!!!!!!!!!!...
  4. 待删除未删除 问题解决
  5. linux查找应用主机,Linux 主机和服务器基本性能检查命令和工具
  6. 酷狗音乐linux版_让父母也爱上音乐 酷狗音乐大字版成中老年人新宠
  7. css两张图片怎么合在一起_web前端入门到实战:纯CSS实现两个球相交的粘粘效果...
  8. 【编程练习】复习一下树的遍历
  9. Ubuntu 携手初创企业用代码开拓物联网
  10. 数据分析 -- 流程
  11. 3dmax寻找丢失贴图_寻找遗失的号码
  12. 2020 ECCV 所有论文及补充材料链接(一)
  13. Liang-Barsky直线段裁剪
  14. glassfish插件_安装和使用Glassfish
  15. DLNA开发Platinum引擎构建
  16. 【LibTorch】Microsoft C++ 异常: c10::NotImplementedError,位于内存位置 0x000000E8A9DAEDC0 处。
  17. 你是谁的蘑菇,你的蘑菇又在哪?
  18. 微信小程序实现画布生成海报功能
  19. 2020大学生网络安全知识大赛总决赛模拟卷错题集(10)
  20. 关于 K8s 集群中证书期限确认及续约的一些笔记

热门文章

  1. QDir, QFileInfo 和 QDirIterator 区别
  2. python docx 设置字体_python docx 中文字体设置的操作方法
  3. 7-4 jmu-Java-03面向对象基础-04-形状-继承 (15 分)
  4. 第10章 例题 7-3 递归实现逆序输出整数
  5. 原生js删除html,原生js操作dom添加删除替换class
  6. pip安装了 但是python找不到_python安装完毕后,用pip安装提示找不到ssl模块怎么解决?...
  7. PHP学习笔记--面向对象
  8. 【读书笔记】iOS-设计简单的Frenzic式益智游戏
  9. 工作流中切换数据库时---“禁止流转”
  10. 抽象类、抽象方法与代码块