第三章 使用OLED屏作為調(diào)試工具
套件包購(gòu)買鏈接:

案例代碼及相關(guān)資料下載鏈接:
鏈接:https://pan.baidu.com/s/1hsIibEmsB91xFclJd-YTYA?pwd=jauj?
提取碼:jauj?
1??? OLED調(diào)試工具
1.1對(duì)程序調(diào)試的認(rèn)識(shí)與OLED簡(jiǎn)介
本章節(jié)只需要知道怎么調(diào)用封裝好的驅(qū)動(dòng)函數(shù),用OLED屏幕來(lái)做調(diào)試工具即可,對(duì)于OLED屏幕的原理與函數(shù)代碼將會(huì)在I2C通信之后講解。
對(duì)于單片機(jī)編程而言,尤其是STM32這種模塊多函數(shù)代碼復(fù)雜的單片機(jī)進(jìn)行編程,程序調(diào)試是非常重要的,因?yàn)閱纹瑱C(jī)沒(méi)有像電腦一樣有很大的顯示屏,想看其中的變量與參數(shù)打印到屏幕即可而單片機(jī),由于材料和成本的問(wèn)題導(dǎo)致對(duì)單片機(jī)編程的調(diào)試有很大的困難,所以對(duì)于程序調(diào)試的學(xué)習(xí)非常重要,而目前常用的調(diào)試方式有以下幾種:
串口調(diào)試:通過(guò)串口通信,將調(diào)試信息發(fā)送到電腦端,電腦使用串口助手顯示調(diào)試信息。
優(yōu)點(diǎn):通過(guò)串口連接電腦,用功能更強(qiáng)大的電腦來(lái)協(xié)助調(diào)試,由于電腦不僅可以顯示參數(shù),還可以顯示圖形,曲線等。
劣勢(shì):借助電腦就說(shuō)明調(diào)試需要拖著電腦,并且通常的串口助手只能以信息流的方式呈現(xiàn)數(shù)據(jù),需要我們對(duì)電腦不停的刷屏所以便捷度不高。
顯示屏調(diào)試:直接將顯示屏連接到單片機(jī),將調(diào)試信息打印在顯示屏上。
優(yōu)點(diǎn):對(duì)于不斷變化的數(shù)據(jù)可以覆蓋刷新顯示,而OLED顯示屏是始終接在單片機(jī)上,顯示方式更直接,操作起來(lái)也更便捷。
劣勢(shì):和電腦相比的話OLED顯示屏的屏幕太小,顯示內(nèi)容有限,不能大規(guī)模的來(lái)調(diào)試,而且功能較為單一,調(diào)試功能沒(méi)有電腦強(qiáng)。
Keil調(diào)試模式:借助Keil軟件的調(diào)試模式,可使用單步運(yùn)行、設(shè)置斷點(diǎn)、查看寄存器及變量等功能。(了解即可)
OLED的簡(jiǎn)介:
OLED(Organic Light Emitting Diode):有機(jī)發(fā)光二極管。
OLED顯示屏:性能優(yōu)異的新型顯示屏,具有功耗低、相應(yīng)速度快、寬視角、輕薄柔韌等特點(diǎn)
0.96寸OLED模塊:小巧玲瓏、占用接口少、簡(jiǎn)單易用,是電子設(shè)計(jì)中非常常見(jiàn)的顯示屏模塊
供電:3~5.5V,通信協(xié)議:I2C/SPI,分辨率:128*64。
對(duì)于OLED顯示屏通常由四針角和七針腳,兩者最明顯的區(qū)別是:四針腳的OLED顯示屏用的是I2C的通信協(xié)議,而七針腳的OLED顯示屏用的是SPI通信協(xié)議。
OLED的硬件電路:

上圖左邊的硬件電路是四針腳的OLED顯示屏,GND與VCC用來(lái)供電,而SCL與SDA是I2C的通信引腳,需要接在I2C的通信引腳之上,不過(guò)本節(jié)用到的驅(qū)動(dòng)函數(shù)代碼是GPIO口來(lái)模擬I2C的通信引腳,所以SCL與SDA是可以接到任意的GPIO口上的。而本開(kāi)發(fā)板用到的OLED顯示屏就是四針腳的。對(duì)于七針腳的OLED的接線電路與四針腳基本一致,除去VCC與GND之外剩下的接線口均為SPI的通信引腳,所以不做過(guò)多贅述。
1.2對(duì)OLED驅(qū)動(dòng)函數(shù)的運(yùn)用
OLED顯示屏的接線圖如下:

實(shí)物圖如下:
OLED顯示屏下面的電路連接:
?

?全部連接好如下圖所示:

?
編程部分:
首先配置STMCubeMX時(shí),對(duì)電源連接的部分不用進(jìn)行配置,只需要將PB8與PB9配置為輸出模式即可,然后注意對(duì)GPIO口配置時(shí)將輸出模式要配置為開(kāi)漏輸出,其他配置不變即可。

對(duì)于OLED顯示函數(shù)的代碼之后會(huì)直接給文件,所以本次代碼只是一個(gè)測(cè)試實(shí)驗(yàn)。OLED顯示的函數(shù)如下:
具體代碼如下:
?
代碼呈現(xiàn)的效果如下:

注:本文是我學(xué)生的STM32學(xué)習(xí)筆記,圖文部分引用了江科大的STM32教程的課件。