STM32GPIO模式詳解

2021-09-29 21:11:16 字數 2300 閱讀 9582

stm32gpio模式詳解

輸入浮空:浮空就是邏輯器件與引腳即不接高電平,也不接低電平。由於邏輯器件的內部結構,當它輸入引腳懸空時,

相當於該引腳接了高電平。一般實際運用時,引腳不建議懸空,易受干擾。通俗講就是浮空就是浮在空中,就相當於此埠在預設情況下什麼都不接,呈高阻態,這種設定在資料傳輸時用的比較多。浮空最大的特點就是電壓的不確定性,它可能是0v,頁可能是vcc,還可能是介於兩者之間的某個值(最有可能) 浮空一般用來做adc輸入用,這樣可以減少上下拉電阻對結果的影響

輸入上拉模式:上拉就是把點位拉高,比如拉到vcc。上拉就是將不確定的訊號通過乙個電阻嵌位在高電平。電阻同時起到限流的作用。弱強只是上拉電阻的阻值不同,沒有什麼嚴格區分

輸入下拉:就是把電壓拉低,拉到gnd。與上拉原理相似

模擬輸入:模擬輸入是指傳統方式的輸入,數字輸入是輸入pcm數碼訊號,即0,1的二進位制數碼訊號,通過數模轉換,

轉換成模擬訊號,經前級放大進入功率放大器,功率放大器還是模擬的

開漏輸出:輸出端相當於三極體的集電極,要得到高電平狀態需要上拉電阻才行,適合於做電流型的驅動,其吸收電流的能力相對強(一般20ma以內)

開漏形式的電路有以下幾個特點:

1. 利用外部電路的驅動能力,減少ic內部的驅動。當ic內部mosfet導通時,驅動電流是從外部的vcc流經r pull-up ,mosfet到gnd。ic內部僅需很下的柵極驅動電流。

2. 一般來說,開漏是用來連線不同電平的器件,匹配電平用的,因為開漏引腳不連線外部的上拉電阻時,只能輸出低電平,如果需要同時具備輸出高電平的功能,則需要接上拉電阻,很好的乙個優點是通過改變上拉電源的電壓,便可以改變傳輸電平。比如加上上拉電阻就可以提供ttl/cmos電平輸出等。(上拉電阻的阻 決定了邏輯電平轉換的沿的速度 。阻 越大,速度越低功耗越小,所以負載電阻的選擇要兼顧功耗和速度。)

3. open-drain提供了靈活的輸出方式,但是也有其弱點,就是帶來上公升沿的延時。因為上公升沿是通過外接上拉無源電阻對負載充電,所以當電阻選擇小時延時就小,但功耗大;反之延時大功耗小。所以如果對延時有要求,則建議用下降沿輸出。

4. 可以將多個開漏輸出的pin,連線到一條線上。通過乙隻上拉電阻,在不增加任何器件的情況下,形成「與邏輯」關係。這也是i2c,smbus等匯流排判斷匯流排占用狀態的原理。補充:什麼是「線與」?:

在乙個結點(線)上, 連線乙個上拉電阻到電源 vcc 或 vdd 和 n 個 npn 或 nmos 電晶體的集電極 c 或漏極 d, 這些電晶體的發射極 e 或源極 s 都接到地線上, 只要有乙個電晶體飽和, 這個結點(線)就被拉到地線電平上. 因為這些電晶體的基極注入電流(npn)或柵極加上高電平(nmos),電晶體就會飽和, 所以這些基極或柵極對這個結點(線)的關係是或非 nor 邏輯. 如果這個結點後面加乙個反相器, 就是或 or 邏輯.

其實可以簡單的理解為:在所有引腳連在一起時,外接一上拉電阻,如果有乙個引腳輸出為邏輯0,相當於接地,與之併聯的迴路「相當於被一根導線短路」,所以外電路邏輯電平便為0,只有都為高電平時,與的結果才為邏輯1。

開漏復用功能:可以理解為gpio口被用作第二功能時的配置情況(即並非作為通用io口使用)。埠必須配置成復用功能輸出模式(推挽或開漏)

推挽式輸出:可以輸出高,低電平,連線數字器件;推挽結構一般是指兩個**管分別受到互補訊號的控制,總是在乙個三極體導通的時候另乙個截止。高低電平由ic的電源低定。

推挽電路是兩個引數相同的三極體或mosfet,以推挽方式存在於電路中,各負責正負半周的波形方法任務,電路工作時,兩隻對稱的功率開關管每次只有乙個導通,所以導通損耗小,效率高。輸出即可以向負載灌電流。推拉式輸出級即提高電路的負載能力,又提高開關速度

推挽式復用功能:可以理解為gpio口被用作第二功能時的配置情況(並非作為通用io口使用)

在stm32中選用io模式

(1) 浮空輸入_in_floating --浮空輸入,可以做key識別,rx1

(2)帶上拉輸入_ipu--io內部上拉電阻輸入

(3)帶下拉輸入_ipd-- io內部下拉電阻輸入

(4) 模擬輸入_ain --應用adc模擬輸入,或者低功耗下省電

(5)開漏輸出_out_od --io輸出0接gnd,io輸出1,懸空,需要外接上拉電阻,才能實現輸出高電平。當輸出為1時,io口的狀態由上拉電阻拉高電平,但由於是開漏輸出模式,這樣io口也就可以由外部電路改變為低電平或不變。可以讀io輸入電平變化,實現c51的io雙向功能

(6)推挽輸出_out_pp --io輸出0-接gnd, io輸出1 -接vcc,讀輸入 是未知的

(7)復用功能的推挽輸出_af_pp --片內外設功能(i2c的scl,sda)

(8)復用功能的開漏輸出_af_od--片內外設功能(tx1,mosi,miso.sck.ss)

STM32 GPIO模式總結

4種輸入模式 浮空輸入 上拉輸入 下拉輸入 模擬輸入 4種輸出模式 開漏輸出 復用開漏輸出 推挽輸出 復用推挽輸出 3種最大輸出速度 2mhz 10mhz 50mhz 浮空輸入模式 1 外部通過io口輸入電平,外部電平通過上下拉部分 浮空模式下都關閉,既無 上拉也無下拉電阻 2 傳輸到施密特觸發器 ...

STM32 GPIO的幾種工作模式

1 模擬輸入 i o口當作input使用,並且是模擬輸入。模擬狀態下用來接收模擬量 電壓值 一般用於ad採集。2 浮空輸入 沒有上拉和下拉電阻,當引腳沒有和外部電路連線時,i o埠的電平是不確定的,即使外部的乙個很小的輸入訊號都會使其發生變化。3 上拉輸入 引腳內部有乙個上拉電阻通過開關連線到電源v...

stm32 GPIO埠的幾種模式

以前只使用,沒有詳細理解過。現在回來做個 輸入模式 gpio mode in floating 輸入浮空 gpio mode ipu 輸入上拉 gpio mode ipd 輸入下拉 gpio mode ain 模擬輸入 輸出模式 gpio mode out od 開漏輸出 gpio mode af ...