STM32的八種GPIO模式

2021-10-10 21:56:51 字數 1454 閱讀 9452

stm32有八種io口模式,分別是:模擬輸入、浮空輸入、上拉輸入、下拉輸入、開漏輸出、推挽輸出、復用開漏輸出和復用推挽輸出。

1、模擬輸入

gpio_mode_ain模擬輸入,即關閉施密特觸發器,將電壓訊號傳送到片上外設模組(不接上下拉電阻)。

2、浮空輸入

gpio_mode_in_floating浮空輸入。浮空輸入狀態下,io的電平狀態是不確定的,完全由外部輸入決定,如果在該引腳懸空的情況下,讀取該埠的電平是不確定的。

3、上下拉輸入

gpio_mode_ipd下拉輸入,gpio_mode_ipu上拉輸入。一般來講,上拉電阻為1k-10k,電阻越小,驅動能力越強。

電阻的作用:防止輸入端懸空,減少外部電流對晶元的干擾,限流,增加高電平輸出時的驅動能力。

當gpio引腳無輸入時,上拉輸入在預設狀態下為高電平,下拉輸入在預設狀態下為低電平。

4、開漏輸出

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

5、推挽輸出

gpio_mode_out_pp推挽輸出,可以輸出高、低電平,連線數字器件。

6、復用開漏推挽輸出

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

io模式選用

浮空輸入:可以做key識別,rx1。

上拉輸入:io內部上拉電阻輸入。

下拉輸入:io內部下拉電阻輸入。

模擬輸入:應用adc模擬輸入,或者低功耗下省電。

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

推挽輸出:io輸出0-接gnd,io輸出1 -接vcc,讀輸入值是未知的。

復用推挽輸出:片內外設功能,i2c的scl、sda。

復用開漏輸出:片內外設功能,tx1,mosi,miso.sck.ss。

引腳配置方式

通常有5種方式使用某個引腳功能,它們的配置方式如下:

1、作為普通gpio輸入:根據需要配置該引腳為浮空輸入、帶弱上拉輸入或帶弱下拉輸入,同時不要使能該引腳對應的所有復用功能模組。

2、作為普通gpio輸出:根據需要配置該引腳為推挽輸出或開漏輸出,同時不要使能該引腳對應的所有復用功能模組。

3、作為普通模擬輸入:配置該引腳為模擬輸入模式,同時不要使能該引腳對應的所有復用功能模組。

4、作為內建外設的輸入:根據需要配置該引腳為浮空輸入、帶弱上拉輸入或帶弱下拉輸入,同時使能該引腳對應的某個復用功能模組。

5、作為內建外設的輸出:根據需要配置該引腳為復用推挽輸出或復用開漏輸出,同時使能該引腳對應的所有復用功能模組。

STM32八種GPIO模式理解

時隔好久,決定將stm32重新複習一遍,然後轉向linux。話不多說下面就是開始正文 上手stm32第一步就是得會配置工程 配置工程的教程有很多,就不多做筆記了,就列舉一下初學過程中比較容易弄錯的地方 在stm32的工程庫中 stm32f10x rcc.c 是必須要加的 在define中use st...

STM32基礎學習 八種GPIO模式總結

八種io模式再現 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 ...

STM32的GPIO的8種工作模式

gpiogpio的英文全稱general purpose input output ports,中文意思是通用i o埠。gpio的八種工作模式,1 gpio mode ain 模擬輸入 2 gpio mode in floating 浮空輸入 3 gpio mode ipd 下拉輸入 4 gpio ...