STM32基於SPI的顯示(OLED)

2021-10-12 16:18:57 字數 2722 閱讀 9278

主函式實驗結果

總結本文使用spi 通訊的oled螢幕,晶元使用的是stm32f103zet6。oled模組整體來說比較簡單,就是加字模,調函式的過程。初學者可以好好看看裡面包含的函式,還是很有趣的。

oled,即有機發光二極體。oled由於同時具備自發光,不需要光源、對比度高、厚度薄、視角廣、反應速度快、可用於撓曲性板、使用溫度範圍廣、構造及製程較簡單等優異之特性,被認為是下一代的平面顯示技術。

lcd都需要背光,而 oled 不需要,因為它是自發光的。這樣同樣的顯示, oled 效果要

來得好一些。 以目前的技術, oled 的尺寸 還難以大型化,但是解析度確可以做 到很高。在本章中 ,我們使用的是 alinetek 的 oled 顯示模組;

該模組有以下特點:

模組有單色和雙色兩種可選,單色為 純藍色 ,而雙色則為黃藍雙色。

尺寸小,顯示尺寸為 0.96 寸,而模組的尺寸僅為 27mm*26mm 大小。

高解析度,該模組的解析度為 128*64 。

多種介面方式,該模組提供了總共 5 種介面包括: 6800 、 8080 兩種並行介面方式、3

線或 4 線的穿行 spi 介面方式, iic 介面方式(只需要 2 根線就可以控制 oled 了!)。

不需要高壓,直接接 3.3v 就可以工作了。

引腳連線:

oled

stm32

vcc3v3 或 5v

d0pd6(scl)

d1pd7(sda)

respd4

dcpd5

cspd3

其中,cs 可以不用連線。

需要找乙個oled的例程,在例程裡進行修改。(一般商家會提供例程)

學號顯示可以使用顯示字串的函式,姓名則需要顯示漢字的函式。

注意:顯示漢字時,需要將漢字的點陣(利用軟體生成點陣)放到存放點陣的檔案中。

顯示字串函式

void

oled_showstring

(u8 x,u8 y,u8 *chr)

j++;}

}

例:oled_showstring(32,0,"********");

其中x,y是定義顯示的位置,chr代表字串。將收到的字串存入字元陣列中,按字元的方式輸出。

顯示漢字函式

void

oled_showchinese

(u8 x,u8 y,u8 no)

oled_set_pos

(x,y+1)

;for

(t=0

;t<

16;t++

)}

例:oled_showchinese(16,0,1);

其中的x,y依然定義顯示的位置,後面的no表示你存入字模的陣列下標。

用oled 顯示aht20 測試的溫濕度,就需要將aht20 的模組加入到工程中。詳細步驟參見鏈結。

然後,將aht20中的主函式也移植到工程的主函式中,注意重定義問題。

由於顯示溫濕度是使用的數字顯示,所以就需要使用到顯示數字的函式。

顯示數字函式

void

oled_shownum

(u8 x,u8 y,u32 num,u8 len,u8 size)

else enshow=1;

}oled_showchar

(x+(size/2)

*t,y,temp+

'0');}

}

例:oled_shownum(48,2,c1,2,16);

其中x,y的含義和上面是相同的,num表示數字或者變數的值,len表示顯示數字的位數,size表示顯示數字的字型大小。

從函式中可以看出來,顯示數字也是按照顯示字元的方式來顯示的。

新增所需要用到的字模到字模檔案中去,依次呼叫其中的文字,然後利用程式設計進行迴圈顯示即可。

#include

"delay.h"

#include

"sys.h"

#include

"oled.h"

#include

"led.h"

#include

"aht20.h"

#include

"myiic.h"

#include

"usart.h"

int32_t main

(void

)oled_init()

;//初始化oled

oled顯示就是呼叫oled裡面的函式,然後在螢幕中進行顯示的過程。一般用來顯示字元、字串、漢字以及一些小一點的也是能顯示的。文字的顯示都是有對應的點陣的,才能夠進行顯示。

了解oled的使用就是對oled呼叫函式的了解,請大佬指導糾錯。

STM32之間SPI通訊

這幾天實驗室比較忙,所以部落格這邊停了一下,繼續吧。繼串列埠中斷後,大家可以嘗試微控制器間串列埠通訊,這裡就不再多贅述。串列埠完了之後,我接著學的就是spi通訊了,作為hello moto公司推出的這種4線全雙工通訊,很節約pcb布局空間,但缺點就是沒有指定的流控制,沒有應答機制來確定訊號收到與否,...

STM32 快速上手SPI

基本的部分前文 stm32 spi 已經介紹過了,這裡只記怎麼用。stm32f103zet6的三個spi的引腳分別為 spi1在apb1時鐘下,spi2和spi3在apb2時鐘下。void spi i2s deinit spi typedef spix void spi init spi typed...

STM32基於SPI和AD7192的資料採集

在開發臭氧發生器的時,我們需要乙個高解析度的ad採集,於是選擇了ad7192,選擇這款adc的原因比較簡單。首先它是24位的符合我們的精度要求 其次它自帶時鐘,便於節省空間 第三它有4路單端或2路差分輸入,與我們需要三路採集相符。ad7192是一款適合高精密測量應用的低雜訊完整模擬前端,內建乙個低雜...