STM32的GPIO的8種工作模式

2022-04-07 12:57:08 字數 2116 閱讀 5956

gpio
gpio的英文全稱general-purpose input /output ports,中文意思是通用i/o埠。

gpio的八種工作模式,

(1)gpio_mode_ain 模擬輸入

(2)gpio_mode_in_floating 浮空輸入

(3)gpio_mode_ipd 下拉輸入

(4)gpio_mode_ipu 上拉輸入

(5)gpio_mode_out_od 開漏輸出

(6)gpio_mode_out_pp 推挽輸出

(7)gpio_mode_af_od 復用開漏輸出

(8)gpio_mode_af_pp 復用推挽輸出

上拉輸入、下拉輸入:上拉就是使io口接上拉電阻到vcc了,跟51一樣,下拉就是使io口接下拉電阻到gnd了,浮空就是即不接上拉,也不接下拉,這樣的話io預設輸入電平不確定,上拉就是輸入高電平,然後接乙個上拉電阻(起保護作用),在你目前開發學習時,只需要知道上拉就表示該埠在預設情況下輸入為高電平,下拉就相反了,指輸入接低電平,然後接乙個下拉電阻(關於上拉電阻與下拉電阻,設計比較多的數電模電知識,此處就略過,反正其保護電路的作用),

浮空:顧名思義,就相當與此埠在預設情況下什麼都不接,呈高阻態,這種設定在資料傳輸時用的比較多,

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

開漏輸出:

關於推挽輸出和開漏輸出,最後用一幅最簡單的圖形來概括:

該圖中左邊的便是推挽輸出模式,其中比較器輸出高電平時下面的pnp三極體截止,而上面npn三極體導通,輸出電平vs+;當比較器輸出低電平時則恰恰相反,pnp三極體導通,輸出和地相連,為低電平。推挽輸出可以提高電路的負載能力,提高開關速度。

右邊的則可以理解為開漏輸出形式,需要接上拉。

浮空輸入:對於浮空輸入,一直沒找到很權威的解釋,只好從以下圖中去理解了

由於浮空輸入一般多用於外部按鍵輸入,結合圖上的輸入部分電路,我理解為浮空輸入狀態下,io的電平狀態是不確定的,完全由外部輸入決定,如果在該引腳懸空的情況下,讀取該埠的電平是不確定的。

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

最後總結下使用情況:

在stm32中選用io模式

(1) 浮空輸入_in_floating ——浮空輸入,可以做key識別,一般實際運用時,引腳不建議懸空,易受干擾。

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

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

(4) 模擬輸入_ain ——模擬輸入是指傳統方式的輸入,可以用作adc輸入,或者低功耗下省電

(5)開漏輸出_out_od ——io輸出0接gnd,io輸出1,懸空,需要外接上拉電阻,才能實現輸出高電平。當輸出為1時,io口的狀態由上拉電阻拉高電平,但由於是開漏輸出模式,這樣io口也就可以由外部電路改變為低電平或不變。可以讀io輸入電平變化,實現c51的io雙向功能,適合於做電流型的驅動,其吸收電流的能力相對強(一般20ma以內)。 

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

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

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

afio時鐘

外部中斷、事件輸出、重對映的時候需要需要開啟afio時鐘,埠復用功能的時候不需要開啟afio時鐘

STM32中GPIO的8種工作模式!

一 推挽輸出 可以輸出高 低電平,連線數字器件 推挽結構一般是指兩個三極體分別受兩個互補訊號的控制,總是在乙個三極體導通的時候另乙個截止。高低電平由ic的電源決定。推挽電路是兩個引數相同的三極體或 mosfet,以推挽方式存在於電路中,各負責正負半周的波形放大任務,電路工作時,兩隻對稱的功率開關管每...

STM32中GPIO的8種工作模式!

一 推挽輸出 可以輸出高 低電平,連線數字器件 推挽結構一般是指兩個三極體分別受兩個互補訊號的控制,總是在乙個三極體導通的時候另乙個截止。高低電平由ic的電源決定。推挽電路是兩個引數相同的三極體或mosfet,以推挽方式存在於電路中,各負責正負半周的波形放大任務,電路工作時,兩隻對稱的功率開關管每次...

STM32中GPIO的8種工作模式!

一 推挽輸出 可以輸出高 低電平,連線數字器件 推挽結構一般是指兩個三極體分別受兩個互補訊號的控制,總是在乙個三極體導通的時候另乙個截止。高低電平由ic的電源決定。推挽電路是兩個引數相同的三極體或mosfet,以推挽方式存在於電路中,各負責正負半周的波形放大任務,電路工作時,兩隻對稱的功率開關管每次...