OLED原理 時序和操作 自己原始碼程式

2021-08-16 18:11:11 字數 2413 閱讀 9287

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

如圖:

bs1和bs2與oled的連線方式

bs1與bs2各有上中下三個引腳,lp與gnd相連,hp與vcc相連

oled的13-25引腳為外接引腳,對應開發板的排針組p1

oled其他引腳暫不介紹,如圖連線處理即可

因為要寫資料,由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]

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設定列位址起始高四位

高四位固定

低四位設定列位址起始高四位

1,ssd1306復位 - 硬復位rst(res)引腳

2,驅動ic初始化-**由oled**商提供

3,開啟顯示-設定顯示命令

4,清0顯示-點陣全滅復位顯示

5,開始顯示-將要顯示的內容寫入gram

注意:

豎向顯示取模方式:

顯示字串水平顯示:

workqueue原理和原始碼分析

workqueue,中文稱其為工作佇列,是乙個用於建立核心執行緒的介面,通過它建立的核心執行緒來執行核心其他模組排列到佇列裡的工作,建立的核心執行緒被稱為工作者執行緒。要理解工作佇列的實現,重點在於理解相關的三個資料結構的含義及關係。1 表示工作佇列型別的資料結構 struct workqueue ...

HashTable原理和原始碼分析

hashtable的特性 hashtable 跟hashmap 最大區別是hashmap具備執行緒安全性,所有的方法都是安全的 hashtable不支援null值和null鍵 hashtable結構同hashmap產不多 陣列 鍊錶,而且沒有紅黑樹,相比更簡單了 擴容 原始碼解析 引數 privat...

Checkpoint的執行原理和原始碼實現

checkpoint 到底是什麼和需要用 checkpoint 解決什麼問題 spark 在生產環境下經常會面臨 transformation 的 rdd 非常多 例如乙個job 中包含1萬個rdd 或者是具體的 transformation 產生的rdd 本身計算特別複雜和耗時 例如計算時常超過1...