關於STM32F103的GPIO口的介紹 (筆記篇)

m0_48766382發表於2020-09-29

在這裡插入圖片描述
廣西●河池學院

廣西高校重點實驗室培訓基地

系統控制與資訊處理重點實驗室

本篇部落格來自河池學院:
智控無人機小組

寫作時間:2020.09.29

關於STM32F103的GPIO口的介紹
(聽課筆記篇)

這是IO口的基本形式
在這裡插入圖片描述

以下就是四種輸入方式的介紹:

(1)
浮空輸入模式
在這裡插入圖片描述

浮空輸入模式下,上拉下拉開關是不會開啟的,電平從I/O口輸入,電平傳輸到TTL(它的狀態是開啟的)直接到輸入資料暫存器,CPU進行讀取讀取TTL中的資料。

(2)
上拉輸入模式
在這裡插入圖片描述

這種輸入方式上拉電阻會被接通,這是與浮空輸入模式唯一的不同點,其它類似。上拉電一般大小為30K~50K左右

(3)下拉輸入模式
在這裡插入圖片描述

這種輸出方式和浮空輸入模式唯一的不同就是下拉電阻開啟了。

(4)模擬模式
在這裡插入圖片描述

這種模式下,上拉電阻和下拉電阻是無效的,外部向內部輸入的是模擬量。(而並非是單純的0和1,是以電壓的形式而不是以電平的形式。電壓是有大小的。電平沒有大小(不是高就是低及0或1),輸入的模擬量一般是0V~3.3V,此時TTL截至,所以直接將模擬量輸出給CPU進行處理。

以下就是四種輸出方式的介紹:

(1)開漏輸出模式
在這裡插入圖片描述

在此時的狀態下,如果寫入的資料是1,該資料會通過位暫存器
後到達輸出暫存器 ODR,後連結到輸出控制電路。此時輸出控制電路輸出的是1,N_MOS管處於閉合狀態,此時I/O口的電平不會由輸出控制電路輸出的輸出來決定(因為N_MOS管處於截至狀態)。此時I/O口的電平由外部的上拉電阻和下拉電阻來決定,也就是說此時的I/O口處於類似浮空的狀態。此時的電平可以根據輸入資料暫存器讓CPU來讀取。(注意:因為此時的I/O口電平不是由輸出控制電路決定的,是由外部電路的上拉和下拉決定的。所以CPU讀到的不一定是CPU寫入的資料)

如果此時寫入的資料是0,輸出控制電路輸出的也是0,N_MOS管處於開啟狀態,這時I/O口的電平會被N_MOS管拉到VSS,所以此時的I/O口也是低電平,所以此時此刻CPU也可以讀到該低電平。(注意:這兩個過程TTL都是開啟的狀態)

(2)開漏複用輸出模式
在這裡插入圖片描述

這種方式與開漏輸出模式的唯一不同點就是訊號的來源方式不同。開漏輸出模式是通過CPU來暫存器來提供訊號的(及0或1)。而開漏複用輸出模式是通過複用功能來提供訊號的,實質就是來源於外部裝置。

(3)推輓輸出方式
在這裡插入圖片描述

控制輸出的暫存器和開漏輸出模式是一樣的,方式也一樣。

如果控制電路輸出為1,P_MOS管就會處於導通狀態,N_MOS管處於截至狀態,此時1就會被傳輸到I/O口,I/O口就會輸出1。同樣的,控制電路輸出為0,P_MOS管就會處於截至狀態,N_MOS管處於導通狀態,此時I/O口輸出0。CPU的讀取資料與開漏輸出模式一樣。

(4)推輓複用輸出方式
在這裡插入圖片描述

此狀態和推輓輸出差不多的,就是輸入訊號的方式不同(看圖類比開漏輸出模式與開漏複用輸出模式的區別可的知)。

以上四種輸入方式,四種輸出方式介紹完畢。

相關文章