有關(guān)上拉輸入、下拉輸入、推挽輸出、開(kāi)漏輸出、復(fù)用開(kāi)漏輸出、復(fù)用推挽輸出以及、浮空輸入、模擬輸入?yún)^(qū)別
最近在網(wǎng)上看見(jiàn)一些人對(duì)STM32的八種方式的解釋?zhuān)f(shuō)了一大堆,最后看完了 也不知道講了什么,為了方便大家一目了然,本人總結(jié)如下,希望對(duì)大家有幫助。
1、上拉輸入:上拉就是把電位拉高,比如拉到Vcc。上拉就是將不確定的信號(hào)通過(guò)一個(gè)電阻嵌位在高電平!電阻同時(shí)起限流作用!弱強(qiáng)只是上拉電阻的阻值不同,沒(méi)有什么嚴(yán)格區(qū)分。
2、下拉輸入:就是把電壓拉低,拉到GND。與上拉原理相似。
3、浮空輸入:浮空(floating)就是邏輯器件的輸入引腳即不接高電平,也不接低電平。由于邏輯器件的內(nèi)部結(jié)構(gòu),當(dāng)它輸入引腳懸空時(shí),相當(dāng)于該引腳接了高電平。一般實(shí)際運(yùn)用時(shí),引腳不建議懸空,易受干擾。 通俗講就是讓管腳什么都不接,浮空著。
4、模擬輸入:模擬輸入是指?jìng)鹘y(tǒng)方式的輸入.數(shù)字輸入是輸入PCM數(shù)字信號(hào),即0,1的二進(jìn)制數(shù)字信號(hào),通過(guò)數(shù)模轉(zhuǎn)換,轉(zhuǎn)換成模擬信號(hào),經(jīng)前級(jí)放大進(jìn)入功率放大器,功率放大器還是模擬的。
5、推挽輸出:可以輸出高,低電平,連接數(shù)字器件; 推挽結(jié)構(gòu)一般是指兩個(gè)三極管分別受兩互補(bǔ)信號(hào)的控制,總是在一個(gè)三極管導(dǎo)通的時(shí)候另一個(gè)截止。高低電平由IC的電源低定。
6、開(kāi)漏輸出:輸出端相當(dāng)于三極管的集電極. 要得到高電平狀態(tài)需要上拉電阻才行. 適合于做電流型的驅(qū)動(dòng),其吸收電流的能力相對(duì)強(qiáng)(一般20ma以?xún)?nèi)).
7、復(fù)用開(kāi)漏輸出、復(fù)用推挽輸出:可以理解為GPIO口被用作第二功能時(shí)的配置情況(即并非作為通用IO口使用)。
在STM32中選用IO模式,下面是參考網(wǎng)上的總結(jié)一下。
(1) 浮空輸入_IN_FLOATING ——浮空輸入,可以做KEY識(shí)別,RX
(2)帶上拉輸入_IPU——IO內(nèi)部上拉電阻輸入
(3)帶下拉輸入_IPD—— IO內(nèi)部下拉電阻輸入
(4) 模擬輸入_AIN ——應(yīng)用ADC模擬輸入,或者低功耗下省電
(5)開(kāi)漏輸出_OUT_OD ——IO輸出0接GND,IO輸出1,懸空,需要外接上拉電阻,才能實(shí)現(xiàn)輸出高電平。當(dāng)輸出為1時(shí),IO口的狀態(tài)由上拉電阻拉高電平,但由于是開(kāi)漏輸出模式,這樣IO口也就可以由外部電路改變?yōu)榈碗娖交虿蛔儭?梢宰xIO輸入電平變化,實(shí)現(xiàn)C51的IO雙向功能
(6)推挽輸出_OUT_PP ——IO輸出0-接GND, IO輸出1 -接VCC,讀輸入值是未知的
(7)復(fù)用功能的推挽輸出_AF_PP ——片內(nèi)外設(shè)功能(I2C的SCL,SDA)(8)復(fù)用功能的開(kāi)漏輸出_AF_OD——片內(nèi)外設(shè)功能(TX1,MOSI,MISO.SCK.SS)