【STM32】OLED简介
00. 目錄
文章目錄
- 00. 目錄
- 01. OLED概述
- 02. OLED特性參數(shù)
- 03. OLED模塊描述
- 04. OLED模塊原理圖
- 05. OLED模塊引腳說(shuō)明
- 06. OLED模塊使用
- 07. 附錄
- 08. 聲明
01. OLED概述
OLED,即有機(jī)發(fā)光二極管(Organic Light-Emitting Diode),又稱為有機(jī)電激光顯示(OrganicElectroluminesence Display, OELD)。OLED 由于同時(shí)具備自發(fā)光,不需背光源、對(duì)比度高、厚度薄、視角廣、反應(yīng)速度快、可用于撓曲性面板、使用溫度范圍廣、構(gòu)造及制程較簡(jiǎn)單等優(yōu)異之特性,被認(rèn)為是下一代的平面顯示器新興應(yīng)用技術(shù)。
LCD 都需要背光,而 OLED 不需要,因?yàn)樗亲园l(fā)光的。這樣同樣的顯示,OLED 效果要來(lái)得好一些。以目前的技術(shù),OLED 的尺寸還難以大型化,但是分辨率確可以做到很高。
02. OLED特性參數(shù)
ATK-0.96’ OLED 模塊是 ALIENTEK 推出的一款小尺寸(0.96 寸)、高亮、自帶升壓電路的高性能 OLED 顯示模塊,分辨率為 128*64,該模塊采用原裝維信諾高亮 OLED 屏,采用SSD1306 驅(qū)動(dòng) IC,該芯片內(nèi)部集成 DCDC 升壓,僅需 3.3V 供電,即可正常工作,無(wú)需用戶再添加升壓 DCDC 電路。
模塊支持:8 位 6800 并口、8 位 8080 并口、IIC 以及 4 線 SPI 等 4 種通信接口,通過(guò)模塊背面的 BS1,BS2 焊盤(pán),可以自行設(shè)置模塊的接口方式。默認(rèn)為:8 位 8080 并口。該模塊各參數(shù)如表 1.1 和表 1.2 所示:
ATK0.96’ OLED 模塊支持多種通信接口,通過(guò)模塊背面的 BS1,BS2,可以自行設(shè)置模塊的通信接口方式,見(jiàn)表 1.3:
03. OLED模塊描述
ATK-0.96’ OLED 模塊是 ALIENTEK 推出的一款高性能 OLED 顯示模塊,尺寸小巧(27mm*26mm),結(jié)構(gòu)緊湊,模塊通過(guò) 1 個(gè) 2*8P 的 2.54mm 間距排針與外部連接,模塊外觀如圖 2.1.1 所示:
該模塊具有如下特點(diǎn):
? 雙色可選,提供純藍(lán)色或黃藍(lán)雙色兩種模塊
? 高分辨率,分辨率為:128*64
? 超小尺寸,OLED 顯示屏為 0.96 寸,模塊尺寸僅為 27mm*26mm
? 多種接口方式,提供 8086 并口、6800 并口、4 線 SPI 和 IIC 等五種接口方式
? 集成 DCDC,無(wú)需外部高壓,僅需提供 3.3V 電源,即可正常工作
圖 2.1.1 中,左側(cè)的圖片是模塊的背面圖,右側(cè)的是正面圖。
04. OLED模塊原理圖
05. OLED模塊引腳說(shuō)明
ATK-0.96’ OLED 模塊通過(guò) 2*8 的 2.54 排針同外部單片機(jī)通信,各引腳的詳細(xì)描述如下表所示
溫馨提示
模塊在使用 IIC 模式或者 4 線 SPI 模式的時(shí)候,是不支持讀操作的,所以如果你需要讀操作,只能選擇 6800 或者 8080 并口模式。模塊默認(rèn)是:8080 并口模式,大家根據(jù)自己選擇的接口模式,來(lái)接線。
06. OLED模塊使用
ATK-0.96’ OLED 模塊的控制器是 SSD1306,支持多種接口方式,我們模塊支持 4 種連接方式,這里我們介紹其中 8080 并口模式。
8080并口模式
ATK-0.96’ OLED 模塊支持 8 位 8080 并口模式,總共需要 13 根信號(hào)線通信,這些信號(hào)線如下:
- CS:OLED 片選信號(hào)。
- WR(RW):向 OLED 寫(xiě)入數(shù)據(jù)。
- RD:從 OLED 讀取數(shù)據(jù)。
- D[7:0]:8 位雙向數(shù)據(jù)線。
- RST(RES):硬復(fù)位 OLED。
- DC:命令/數(shù)據(jù)標(biāo)志(0,讀寫(xiě)命令;1,讀寫(xiě)數(shù)據(jù))。
模塊的 8080 并口讀/寫(xiě)的過(guò)程為:先根據(jù)要寫(xiě)入/讀取的數(shù)據(jù)的類型,設(shè)置 DC 為高(數(shù)據(jù))/低(命令),然后拉低片選,選中 SSD1306,接著我們根據(jù)是讀數(shù)據(jù),還是要寫(xiě)數(shù)據(jù)置RD/WR 為低,然后:
在 RD 的上升沿, 使數(shù)據(jù)鎖存到數(shù)據(jù)線(D[7:0])上;
在 WR 的上升沿,使數(shù)據(jù)寫(xiě)入到 SSD1306 里面;
SSD1306 的 8080 并口寫(xiě)時(shí)序如圖所示:
SSD1306 的 8080 并口讀時(shí)序如圖 2.3.1.2 所示:
SSD1306 的 8080 接口方式下,控制腳的信號(hào)狀態(tài)所對(duì)應(yīng)的功能如表所示:
注 1:H 代表高電平(VCC),L 代表低電平(GND),↑代表上升沿。
在 8080 方式下讀數(shù)據(jù)操作的時(shí)候,我們有時(shí)候(例如讀顯存的時(shí)候)需要一個(gè)假讀命(Dummy Read),以使得微控制器的操作頻率和顯存的操作頻率相匹配。在讀取真正的數(shù)據(jù)之前,由一個(gè)的假讀的過(guò)程。這里的假讀,其實(shí)就是第一個(gè)讀到的字節(jié)丟棄不要,從第二個(gè)開(kāi)始,才是我們真正要讀的數(shù)據(jù)。
一個(gè)典型的讀顯存的時(shí)序圖,如圖所示:
可以看到,在發(fā)送了列地址之后,開(kāi)始讀數(shù)據(jù),第一個(gè)是 Dummy Read,也就是假讀,我們從第二個(gè)開(kāi)始,才算是真正有效的數(shù)據(jù)。
顯存
SSD1306 的顯存總共為 128*64bit 大小,SSD1306 將這些顯存分為了 8 頁(yè),其對(duì)應(yīng)關(guān)系如表所示:
SSD1306 的每頁(yè)包含了 128 個(gè)字節(jié),總共 8 頁(yè),這樣剛好是 128*64 的點(diǎn)陣大小。因?yàn)槊看螌?xiě)入都是按字節(jié)寫(xiě)入的,這就存在一個(gè)問(wèn)
題,如果我們使用只寫(xiě)方式操作模塊,那么,每次要寫(xiě) 8 個(gè)點(diǎn),這樣,我們?cè)诋?huà)點(diǎn)的時(shí)候,就必須把要設(shè)置的點(diǎn)所在的字節(jié)的每個(gè)位都搞
清楚當(dāng)前的狀態(tài)(0/1?),否則寫(xiě)入的數(shù)據(jù)就會(huì)覆蓋掉之前的狀態(tài),結(jié)果就是有些不需要顯示的點(diǎn),顯示出來(lái)了,或者該顯示的沒(méi)有顯
示了。這個(gè)問(wèn)題在能讀的模式下,我們可以先讀出來(lái)要寫(xiě)入的那個(gè)字節(jié),得到當(dāng)前狀況,在修改了要改寫(xiě)的位之后再寫(xiě)進(jìn) GRAM,這樣就
不會(huì)影響到之前的狀況了。但是這樣需要能讀 GRAM,對(duì)于 4 線 SPI 模式或者 IIC 模式來(lái)說(shuō),模塊是不支持讀的,而且讀->改->寫(xiě)的方式
速度也比較慢。
我們推薦采用的辦法是在單片機(jī)的內(nèi)部建立一個(gè) OLED 的 GRAM(需要 128*8 個(gè)字節(jié)),在每次修改的時(shí)候,只是修改單片機(jī)上的 GRAM(實(shí)際上就是 SRAM),在修改完了之后,一次性把單片機(jī)內(nèi)部的 GRAM 寫(xiě)入到 OLED 的 GRAM。當(dāng)然這個(gè)方法也有壞處,就是對(duì)于那些 SRAM 很小的單片機(jī)(比如 51 系列)就比較麻煩了,如果內(nèi)存不夠,那就推薦還是采用并口模式,這樣可以節(jié)約內(nèi)存。
指令
SSD1306 的指令比較多,這里我們僅介紹幾個(gè)比較常用的命令
第一個(gè)命令為 0X81,用于設(shè)置對(duì)比度的,這個(gè)命令包含了兩個(gè)字節(jié),第一個(gè) 0X81 為命令,隨后發(fā)送的一個(gè)字節(jié)為要設(shè)置的對(duì)比度的值。這個(gè)值設(shè)置得越大屏幕就越亮。
第二個(gè)命令為 0XAE/0XAF。0XAE 為關(guān)閉顯示命令;0XAF 為開(kāi)啟顯示命令。
第三個(gè)命令為 0X8D,該指令也包含 2 個(gè)字節(jié),第一個(gè)為命令字,第二個(gè)為設(shè)置值,第二個(gè)字節(jié)的 BIT2 表示電荷泵的開(kāi)關(guān)狀態(tài),該位為 1,則開(kāi)啟電荷泵,為 0 則關(guān)閉。在模塊初始化的時(shí)候,這個(gè)必須要開(kāi)啟,否則是看不到屏幕顯示的。
第四個(gè)命令為 0XB0~B7,該命令用于設(shè)置頁(yè)地址,其低三位的值對(duì)應(yīng)著 GRAM 的頁(yè)地址。
第五個(gè)指令為 0X00~0X0F,該指令用于設(shè)置顯示時(shí)的起始列地址低四位。
第六個(gè)指令為 0X10~0X1F,該指令用于設(shè)置顯示時(shí)的起始列地址高四位。
其他命令,我們就不在這里一一介紹了,大家可以參考 SSD1306 datasheet 的第 28 頁(yè)。從這頁(yè)開(kāi)始,對(duì) SSD1306 的指令有詳細(xì)的介紹。
07. 附錄
7.1 【STM32】STM32系列教程匯總
網(wǎng)址:【STM32】STM32系列教程匯總
08. 聲明
該教程參考了正點(diǎn)原子的《STM32 F4 開(kāi)發(fā)指南》
總結(jié)
以上是生活随笔為你收集整理的【STM32】OLED简介的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【STM32】输入捕获程序
- 下一篇: 【STM32】FSMC概述