STM32微控制器學習筆記1 GPIO結構解析

2021-10-04 23:43:30 字數 2002 閱讀 2692

gpio(general purpose intput output) 是通用輸入輸出埠的簡稱, 可以通過軟體來控制其輸入和輸出。 stm32 晶元的 gpio 引腳與外部裝置連線起來,可以實現與外部通訊、 控制以及資料採集的功能。

結構框圖如下:

①保護二極體

引腳內部加上這兩個保護二級管可以防止引腳外部過高或過低的電壓輸入從而對晶元造成傷害。由於二極體有單嚮導通的特性,當引腳電壓高於 vdd 時,上方的二極體導通吸收這個高電壓, 當引腳電壓低於 vss 時, 下方的二極體導通, 防止不正常電壓引入晶元導致晶元燒毀。儘管 stm32 晶元內部有這樣的保護, 但並不意味著 stm32 的引腳就無所不能, 如果直接將引腳連線大功率器件, 比如電機, 那麼要麼電機不轉, 要麼燒壞晶元。

②內部上下拉電阻

從結構圖可以看出,內部的上下拉電阻分別由乙個開關控制,通過配置內部暫存器控制上下拉電阻開關,就可以控制引腳的預設狀態電平,從而消除引腳不定狀態的影響。當上拉和下拉開關都關斷時,引腳處於浮空模式,此時,引腳的電壓是不確定的,所以一般情況下我們都會給引腳設定成上拉或者下拉模式, 使它有乙個預設狀態。

③p-mos 和 n-mos 管

由結構圖可知,輸出控制單元輸出狀態給p-mos 和 n-mos 管,再將狀態輸出給i/o引腳。這種電路結構就讓gpio引腳具有了推挽和開漏兩種輸出模式。為了簡化結構,我們將可 p-mos 當作 npn三極體, n-mos 當作 pnp 三極體來分析。

推挽輸出模式:當輸出控制單元輸出高電平時, p-mos 管導通,n-mos管截止,i/o口輸出高電平;當輸出控制單元輸出低電平時, p-mos 管截止,n-mos管導通,i/o口輸出低電平。如果當不斷轉換輸入高低電平時,兩個mos管將輪流導通,乙個負責灌電流(電流輸出到負載),乙個負責拉電流(負載電流流向晶元),使其負載能力和開關速度都比普通的方式有很大的提高。

開漏輸出模式:p-mos管始終處於關閉狀態。當輸出控制單元輸出低電平時,n-mos管導通,i/o埠輸出低電平;當輸出控制單元輸出高電平時,n-mos管截止,i/o埠輸出既不是高電平也不是低電平,我們稱之為高阻態。要想i/o口輸出高電平,必須外加上拉電阻。開漏模式還有乙個特點就是引腳具有「線與」關係,當很多個開漏輸出模式的引腳接在一起的時候,只要有乙個引腳為低電平,則所有的引腳都為低電平。開漏輸出模式一般應用在 i2c、 smbus 通訊等需要「線與」 功能的匯流排電路中。

④輸出資料暫存器

晶元內部的輸出資料暫存器。雙mos管的輸入訊號,即進入輸出控制單元的訊號就是通過輸出資料暫存器來進行設定的。

⑤復用功能輸出

由於 stm32 的 gpio 引腳具有第二功能, 因此當使用復用功能的時候, 也就是通過其他外設復用功能輸出訊號與 gpio 資料暫存器一起連線到輸出控制單元結構, 其中梯形結構是用來選擇使用復用功能還是普通 io 口功能。

⑥輸入資料暫存器

輸入資料暫存器內的資料是由 io 口經過上下拉電阻、 施密特觸發器引入。 當訊號經過觸發器, 模擬訊號將變為數碼訊號 0 或 1, 然後儲存在輸入資料暫存器中, 通過讀取輸入資料暫存器 gpiox_idr 就可以知道 io 口的電平狀態。

⑦復用功能輸入

與復用功能輸出相似,在復用功能輸入模式時, gpio 引腳的訊號傳輸到 stm32 其他片上外設, 由該外設讀取引腳的狀態。

⑧模擬輸入輸出

當 gpio 引腳用於 adc 採集電壓的輸入通道時, 用作「模擬輸入」 功能,此時訊號是不經過施密特觸發器的, 因為經過施密特觸發器後訊號只有 0、 1 兩種狀態, adc 外設要採集到原始的模擬訊號, 訊號源輸入必須在施密特觸發器之前。 類似地, 當 gpio 引腳用於 dac 作為模擬電壓輸出通道時, 此時作為「模擬輸出」 功能, dac 的模擬訊號輸出就不經過雙 mos 管結構了, 模擬訊號直接通過管腳輸出。

學習筆記之 STM32微控制器

6 mco 2 0 可以提供4源不同的時鐘同步訊號,pa8 7 gpio口貌似有兩個反向串聯的二極體用作鉗位二極體。8 匯流排矩陣採用輪換演算法對系統匯流排和dma進行仲裁 9 icode匯流排,dcode匯流排 系統匯流排 dma匯流排 匯流排矩陣 ahb apb橋 10 在使用乙個外設之前,必須...

微控制器學習(一) 微控制器基礎 STM32

io四種輸入工作模式 io四種輸出工作模 stm32有8個16位定時器 stm32具有強大的異常響應系統,它把能夠打斷當前 執行流程的事件分為異常 exception 和中斷 interrupt 並把它們用乙個表管理起來,編號為 3 6的中斷向量定義為系統異常,編號從7到19的為外部中斷。中斷向量控...

STM32微控制器PWM輸出學習

pwm原理 pwm表示脈衝寬度調製,它是一系列脈衝,這些脈衝將以方波的形式出現。也就是說,在任何給定的時間點,波型要麼是高電平或者是低電平。對於pwm訊號我們需要關注兩個與之相關的重要引數,乙個是pwm占空比,另乙個是pwm訊號的頻率。占空比 接通時間 接通時間 斷開時間 也就是說,通過控制從0 到...