stm32輸入的功能引腳功能介紹


Ⅰ、寫在前面
在開發STM32的時候,都需要對IO的模式進行配置(GPIO_InitStructure. GPIO_Mode = xxx)。但是,你們都知道各種模式的具體意義嗎?

 

有的人問:IO口輸出可以上拉嗎? 開漏輸出是干什么用的?

 

其實這些問題並不難,只要你了解到每一種模式的真正意思,相信這些問題都不會難道你。本文的內容比較基礎,也比較實用,希望對你有所幫助。

 

關於本文的詳細內容請看下面章節

 

Ⅱ、模式說明
STM32芯片的IO有8中模式:

(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結構圖來自STM32F1參考手冊,從圖中可以看得出來IO口大致的結構,也能反映出各種模式。

 

 

代碼中常見的一些配置:

 

 

 

 

 

 

 

Ⅲ、本文要點
下面結合相關資料,講述一下各種模式的內容:

 

1.GPIO_Mode_AIN 模擬輸入
這個模式比較好理解,主要用於模擬輸入時的配置(一般是針對ADC功能)。在特殊DAC輸出的時候也用該模式,參看手冊:

 

 

 

2.GPIO_Mode_IN_FLOATING 浮空輸入
浮空顧名思義就是懸浮在空中,也叫懸空輸入。配置成浮空輸入模式,如果沒有連接其他設備,檢測其電平是不定的,有可能檢測到高電平,也有可能堅持到低電平。

 

3.GPIO_Mode_IPD、GPIO_Mode_IPU上下拉
GPIO_Mode_IPD下拉 和 GPIO_Mode_IPU上拉模式應該大家都明白它的意思,它們和浮空輸入是成對應關系。

 

A.上拉或下拉電阻阻值?

有些時候,了解到阻值的大小有助於硬件的設計,以及軟件的編程,阻值大小一般是40K左右,具體可以參看數據手冊:

 

 

B.疑問

有的人會有這樣的疑問,為什么沒有輸出下拉?或輸出上拉?

答案其實很簡單,在該系統中,MCU起到主要作用,輸出的電平是由MCU決定,要么是高電平,要么是低電平。

 

4.GPIO_Mode_Out_OD 開漏輸出
開漏輸出這個功能是比較重要的,也是相對比較難一點的(當然,明白了就覺得簡單)。或許我們平時沒怎么使用過該功能,並不知道它具體的用途,就沒有多去了解它。

 

開漏輸出大致意思:設置引腳輸出為“1”時,該引腳處於開漏,也就是相當於浮空狀態; 設置引腳輸出為“0”時,該引腳將拉低電平。

 

前面我有一篇文章【模擬I2C讀寫EEPROM】里面I2C總線的SDA引腳就使用了開漏輸出功能。也就是需要在釋放SDA總線時,只需要將SDA設置輸出為“1”就行了。

 

5.GPIO_Mode_Out_PP 推挽輸出
推挽輸出:意思就是輸出具有驅動能力(比如:引腳上接一個LED,可以直接點亮,若是開漏輸出,就不能點亮LED)。

 

推挽輸出這個功能是比較常用的功能,我們一般輸出控制某個信號,基本上都是配置為GPIO_Mode_Out_PP 推挽輸出。

 

推挽輸出電流大小也是比較關鍵的一個參數,根據芯片不同,其大小也不同,具體可以查看數據手冊:

 

 

 

6.GPIO_Mode_AF_OD 復用開漏輸出
復用開漏輸出:該模式和上面“GPIO_Mode_Out_OD開漏輸出”類似,只是它引腳對應的功能具有復用的功能。前面文章【硬件I2C讀寫EEPROM】里面就是使用了該功能。

 

7.GPIO_Mode_AF_PP 復用推挽輸出
復用推挽輸出功能和推完功能類似,主要用在具有復用功能的情況下,比如USART的TX引腳等。
---------------------
作者:ybhuangfugui
來源:CSDN
原文:https://blog.csdn.net/ybhuangfugui/article/details/52953533
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM