**
一:四種輸入模式
1.上拉輸入(gpio_mode_ipu):
上拉輸入就是訊號進入晶元後加了乙個上拉電阻,再經過施密特觸發器轉換成0、1訊號,讀取此時的引腳電平為高電平
2.下拉輸入(gpio_mode_ipd):
下拉輸入就是訊號進入 晶元後加了乙個下拉電阻,再經過施密特觸發器轉換成0、1訊號,讀取此時的引腳電平為低電平
3.模擬輸入(gpio_mode_ain):
訊號進入後不經過上拉電阻或者下拉電阻,關閉施密特觸發器,經由另一線路把電壓訊號傳送到片上外設模組。比如傳送給adc模組,由adc採集電壓訊號。所以可以理解為模擬輸入的訊號是未經處理的訊號,是原汁原味的訊號。
4.浮空輸入(gpio_mode_in_floating):
訊號進入晶元內部後,既沒有接上拉電阻也沒有接下拉電阻,經由觸發器輸入配置成這個模式後,用電壓變數引腳電壓為1點幾伏,這是個不確定值。由於其輸入阻抗比較大,一般把這種模式用於標準的通訊協議,比如iic、usart的等
二.四種輸出模式
1.推挽輸出(gpio_mode_out_pp):
可以輸出高,低電平,連線數字器件; 推挽結構一般是指兩個三極體分別受兩互補訊號的控制,總是在乙個三極體導通的時候另乙個截止。高低電平由ic的電源低定
推挽電路是兩個引數相同的三極體或mosfet,以推挽方式存在於電路中,各負責正負半周的波形放大任務,電路工作時,兩隻對稱的功率開關管每次只有乙個導通,所以導通損耗小、效率高。輸出既可以向負載灌電流,也可以從負載抽取電流。推拉式輸出級既提高電路的負載能力,又提高開關速度
2.開漏輸出(gpio_mode_out_od):
輸出端相當於三極體的集電極. 要得到高電平狀態需要上拉電阻才行. 適合於做電流型的驅動,其吸收電流的能力相對強(一般20ma以內).
開漏形式的電路有以下幾個特點:
1. 利用外部電路的驅動能力,減少ic內部的驅動。當ic內部mosfet導通時,驅動電流是從外部的vcc流經r pull-up ,mosfet到gnd。ic內部僅需很下的柵極驅動電流。
2.一般來說,開漏是用來連線不同電平的器件,匹配電平用的,因為開漏引腳不連線外部的上拉電阻時,只能輸出低電平,如果需要同時具備輸出高電平的功能,則需要接上拉電阻,很好的乙個優點是通過改變上拉電源的電壓,便可以改變傳輸電平。比如加上上拉電阻就可以提供ttl/cmos電平輸出等。(上拉電阻的阻值決定了邏輯電平轉換的沿的速度 。阻值越大,速度越低功耗越小,所以負載電阻的選擇要兼顧功耗和速度。)
3. open-drain提供了靈活的輸出方式,但是也有其弱點,就是帶來上公升沿的延時。
因為上公升沿是通過外接上拉無源電阻對負載充電,所以當電阻選擇小時延時就小,但功耗大;反之延時大功耗小。所以如果對延時有要求,則建議用下降沿輸出。
4. 可以將多個開漏輸出的pin,連線到一條線上。通過乙隻上拉電阻,在不增加任何器件的情況下,形成「與邏輯」關係。這也是i2c,smbus等匯流排判斷匯流排占用狀態的原理。
3.復用推挽輸出(gpio_mode_af_pp):片內外設功能(i2c的scl,sda)
4.復用開漏輸出(gpio_mode_af_od):片內外設功能(tx1,mosi,miso.sck.ss)
STM32輸入輸出理解
最近在看資料手冊的時候,發現在cortex m3裡,對於gpio的配置種類有8種之多 1 gpio mode ain 模擬輸入 2 gpio mode in floating 浮空輸入 3 gpio mode ipd 下拉輸入 4 gpio mode ipu 上拉輸入 5 gpio mode out...
STM32 四種輸入輸出模式。
stm32的四種輸入方式 1 上拉輸入 gpio mode ipu 上拉輸入就是訊號進入晶元後加了乙個上拉電阻,再經過施密特觸發器轉換成0 1訊號,讀取此時的引腳電平為高電平 2 下拉輸入 gpio mode ipd 下拉輸入就是訊號進入 晶元後加了乙個下拉電阻,再經過施密特觸發器轉換成0 1訊號,...
STM32之GPIO輸入輸出
gpio的輸出 背景 應用在點亮led。led串聯電阻再上拉,另一端與gpio口相連。因此,gpio輸出高電平則led滅,輸出低電平則led亮。第一步工作是初始化gpio,使能外設時鐘,因為gpio是掛載在apb2中線上的。然後對gpio inittypedef結構體進行初始化,設定gpio pin...