ARM外設——0.96寸oled

外觀介紹

作爲單片機常用顯示設備oled具有體積小巧,方便移植,成本低等優點,特別是在需要顯示一些參數字符時小oled往往 非常合適。

0.96寸oled支持串行(IIC或SPI)和8080並行通信,由於其本身像素點只有128*64串行通信也不會佔用太多的傳輸時間切串行更方便硬件連接與移植,故我們接下來主要介紹串行方式.這是常見的七腳oled包含電源引腳 VCC地引腳GND以及串行時鐘引腳和數據引腳,命令數據選擇引腳 DC,片選引腳CS和復位引腳RST

模塊顯存

0.96寸oled內部集成了一個SSD1306的顯存總共爲128*64bit大小,SSD1306將這些顯存分爲了8頁。每頁包含了128個字節,總共8頁,這樣剛好是128*64的點陣大小。

我們在修改oled的顯示內容時通常會先在單片機內部開闢一塊128*64的緩存,將該緩存中的對應數據進行修改後,刷新一次屏幕(將單片機內部緩存的數據傳輸到oled的緩存空間並刷新顯示)。

SSD1306的常用命令

命令0X81:設置對比度。包含兩個字節,第一個0X81爲命令,隨後發送的一個字節爲要設置的對比度的值。這個值設置得越大屏幕就越亮。

命令0XAE/0XAF:0XAE爲關閉顯示命令;0XAF爲開啓顯示命令。

命令0X8D:包含2個字節,第一個爲命令字,第二個爲設置值,第二個字節的BIT2表示電荷泵的開關狀態,該位爲1,則開啓電荷泵,爲0則關閉。在模塊初始化的時候,這個必須要開啓,否則是看不到屏幕顯示的。

命令0XB0~B7:用於設置頁地址,其低三位的值對應着GRAM的頁地址。

命令0X00~0X0F:用於設置顯示時的起始列地址低四位。

命令0X10~0X1F:用於設置顯示時的起始列地址高四位。

 

oled初始化過程

OLED刷新過程

移植 工作

對該驅動的移植主要就是對寫命令/數據函數的修改

//向SSD1306寫入一個字節。
//dat:要寫入的數據/命令
//cmd:數據/命令標誌 0,表示命令;1,表示數據;
void OLED_WR_Byte(u8 dat,u8 cmd);

其他最複雜的緩衝區數據的計算修改對於任意平臺都適用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章