999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于STM32的OLED顯示屏接口設計

2017-11-09 08:27:49劉正翔
電子技術與軟件工程 2017年19期

劉正翔

摘 要近年來,新興的OLED技術以其優越的性能受到眾多應用廠商的青睞。本文以STM32控制OLED顯示屏為例,通過介紹模塊硬件特性,闡述如何用STM32控制顯示屏,并給出關鍵的讀寫驅動源碼,對OLED驅動的應用者具有一定的借鑒意義。

【關鍵詞】STM32 OLED 顯示屏

近年來,一種新興的有機發光二極管顯示器OLED,以其優越的性能,在眾多的顯示屏器件中脫穎而出,廣泛應用于商業領域和軍事領域中。傳統的小尺寸顯示屏大多采用LCD液晶顯示,雖然有較好的亮度和較低的功耗,但需要單獨給背光才可清晰看清楚顯示屏的數據信息,且液晶屏在黑位水平、對比度、厚度、視角、顏色均勻性等方面的性能,較之OLED性能相差甚遠。

1 OLED屏硬件接口設計

為縮短研發周期,國內一些公司將OLED屏組裝成模塊并引出模塊控制引腳。客戶只要根據模塊引腳即可控制OLED模塊進行顯示。經過比較,這里以廣州星翼電子科技有限公司推出的ATK-0.96 OLED模塊為例,介紹該顯示模塊屏與主控芯片的硬件接口電路設計。

該模塊工作溫度為-40~+70℃,內部自帶升壓電路,分辨率為128*64像素,采用SSD1306驅動芯片,僅需3.3V供電即可。該模塊支持8位6800并口、8位8080并口、I2C總線、4線SPI總線等四種通信接口方式,通過背面兩個焊點可設置模塊接口方式:都為高電平時,為8位8080并口模式。模塊出廠默認該模式。

本文即是采用默認的8080并口模式,通過排針與外部的STM32通信,使用到的引腳與LCD液晶模塊大同小異:除了電源與接地引腳外,主要的引腳為CS片選信號;RW寫入數據信號;RS讀取數據信號;D[0-7]8位雙向數據線信號;RST復位;DC數據或指令選擇信號等。為了控制OLED模塊只要先選擇輸入的是指令還是數據,然后設置片選引腳為低電平,設置寫信號使能并將數據寫到數據線上,即可進行數據的讀寫操作。

由于STM32的GPIO端口都是16位的,為了與模塊連接,只要選擇STM32其中一個PA端口(也可選擇其他通用端口)中的5個通用引腳作為模塊的控制信號線,再選擇另一個PB端口的低8位通用引腳作為數據線與模塊通信即可。這里選擇PA端口用做控制信號,PB端口用作數據線。由于引腳連接較為簡單,不再圖示。具體是:PA0連DC腳,PA1連片選CS,PA2連RD腳,PA3連RW腳,PA4連RST腳。PB0-PB7連數據線D0-D7腳。

2 OLED模塊的程序設計

2.1 初始化程序設計

OLED屏與液晶屏類似,在應用前都需要進行初始化。整個初始化工作為一系列顯示控制芯片的設置工作,主要包括關閉顯示、設置時鐘分頻因子、設置顯示偏移、設置內存地址、行列起始地址等。每個顯示模塊廠商均提供該初始化源碼,由于每個廠家提供的初始化源碼不同,這里就不再詳細闡述,讀者可查看廠家說明書,直接參考源碼即可。

2.2 讀寫數據/指令

進行顯示屏模塊的讀寫操作,實際上就是與模塊內的控制芯片進行通信。若進行寫數據/指令,則設置DC為低電平選擇指令線,拉低片選并設置RW上升沿,使得數據寫入到顯示模塊中。數據寫入顯示模塊即寫入到顯存與屏幕對應的位置。若進行讀數據,則設置DC為高電平選擇數據線。然后拉低片選并設置RD上升沿,使得數據鎖存到數據線上,即可在引腳上可讀取到數據。具體的時序圖讀者可參考廠家說明書。下面以向顯示模塊進行一次寫操作的函數為例說明。

Void WR_Byte()

{

RS_Set(); //DC=1表示寫數據

CS_Clr(); //拉低片選

WR_Clr(); //WR的上升沿開始寫入數據

WR_Set();

CS_Set();

RS_Set();

}

若要向顯示模塊寫入一個字節數據,則在寫操作函數基礎上送入數據即可。由于主控芯片的IO端口是16位的,因此需要屏蔽高8位,只送入低8位,以避免不必要的影響。因此向顯示模塊寫入一個字節的源碼只要添加下面這行代碼即可:

GPIOB->ODR=(GPIOB->ODR&0xff00)|(x&0x00FF);

讀操作與寫操作類似,這里就不詳細闡述。

2.3 顯存編碼思路

輸入OLED模塊的數據之所以能顯示到屏幕上,是因為內部有一個顯存,該顯存與模塊屏幕上的像素點是一一對應的關系。只要把數據送到顯存對應的地址上,就會按顯存的地址顯示到屏幕上。SSD1306的顯存為128*64bit,分為8頁,每頁128個字節。可以把顯存想象成一個屏幕,屏幕上的每個像素點就是顯存的一個存儲位置。現在考慮,若要畫一個圖形或漢字,是否直接寫入字節就可以實現全部的情況?由于每次寫入都是按字節寫入的。也就是說,每次都必須寫入8個像素點。若有一次寫入時,8位像素點中,低2位的像素點剛好是相鄰圖形的一個組成部分,此時再寫入完整一個字節,就會把原來的圖形覆蓋掉2個像素點。為解決該問題,最簡單的解決方法是,先將該字節的8個位讀取出來,按要求修改完寫入的位,然后重新寫入。該方法缺陷是,每次都要先讀取,再寫入,消耗了時間。另一種方法,新建一個128*8字節的二維數組GRAM[i][j],修改時,直接在數據上修改,修改完一次性寫到OLED的顯存里。此思路雖然方便STM32對該模塊的控制,但需要一定內存空間,因此對內存小的單片機可能就不太合適。

3 結論

本文闡述了OLED顯示屏模塊的結構、硬件電路設計及軟件關鍵讀寫函數編寫等。通過項目實踐,對選用的顯示模塊應用可能遇到的問題進行總結,給出顯示屏硬件接口電路,及其關鍵驅動源代碼,對顯示屏應用有一定的借鑒意義。

參考文獻

[1]翁夢婷.OLED顯示驅動控制電路的設計[D].浙江大學碩士學位論文,2016(01).

[2]張洋,劉軍.原子教你玩STM32(庫函數版)第2版[M].北京:航空航天大學出版社,2015(11).

[3]劉火良,楊森.STM32庫開發實戰指南[M].北京:機械工業出版社,2013(06).

作者單位

福州職業技術學院 福建省福州市 350108

主站蜘蛛池模板: 999福利激情视频| 国产亚洲视频免费播放| 中文字幕免费播放| 好吊色妇女免费视频免费| 成人精品区| 日韩久草视频| 午夜在线不卡| 欧洲熟妇精品视频| 久久精品这里只有精99品| 欧美日韩国产精品va| 2021国产精品自拍| 伊人久热这里只有精品视频99| 日本一区二区不卡视频| 久久黄色影院| 2020精品极品国产色在线观看 | 欧美激情成人网| 国产成人精品亚洲日本对白优播| 99热这里只有精品在线播放| 免费一级毛片完整版在线看| 久久人搡人人玩人妻精品| 激情网址在线观看| 亚洲一级毛片在线观播放| 六月婷婷激情综合| 91色在线观看| 免费毛片a| 99激情网| 国产精品亚欧美一区二区| 国产黄色免费看| 精品国产美女福到在线不卡f| 成人一级黄色毛片| 四虎永久在线| 国产成人高精品免费视频| 亚洲综合专区| 日本三级欧美三级| 国产免费黄| 一本大道东京热无码av| 免费视频在线2021入口| 亚洲精品视频网| 午夜国产精品视频| 亚洲精品视频免费| 亚洲中久无码永久在线观看软件| 国产一级精品毛片基地| 97久久超碰极品视觉盛宴| 日本一区二区三区精品国产| 超碰色了色| 亚洲va欧美va国产综合下载| 好久久免费视频高清| 女人18毛片久久| 亚洲国语自产一区第二页| 波多野结衣久久高清免费| 久草视频精品| 黄色a一级视频| 国产乱子伦视频三区| 国产玖玖玖精品视频| 77777亚洲午夜久久多人| 国产亚洲美日韩AV中文字幕无码成人| 国产在线观看91精品亚瑟| 欧美亚洲日韩中文| a毛片在线免费观看| 亚洲国产成人久久精品软件| 欧美高清日韩| 特级做a爰片毛片免费69| 国产成人h在线观看网站站| 免费在线国产一区二区三区精品 | 国产91特黄特色A级毛片| 无码丝袜人妻| 色综合成人| 久久精品66| 伊人久久婷婷| 2021国产精品自产拍在线观看| 国内精品视频在线| 青青青视频免费一区二区| 免费va国产在线观看| 欧美日韩精品一区二区在线线 | 亚洲成人黄色在线观看| 草逼视频国产| 国产欧美日韩精品综合在线| 五月婷婷综合在线视频| 亚洲第一av网站| 在线播放精品一区二区啪视频| 欧美成人h精品网站| 99热这里都是国产精品|