IO也叫GPIO,即通用輸入輸出端口,主要有一下幾種模式,普通輸入,模擬輸入,開漏輸出,推挽輸出,另外還可附加配置浮空,上拉或者下拉,或者復(fù)用。普通輸入就是讀取ttl電平的邏輯值,不多解釋;模擬輸入對外表現(xiàn)為高阻,一方面可以在啟用內(nèi)部adc的時候使用,另一方面降低不用端口的電流,減小功耗;開漏輸出簡單講就是邏輯1輸出高阻態(tài),邏輯0輸出低電平,因此需要外部上拉電阻,看似麻煩但是好處是可以做邏輯電平轉(zhuǎn)換,天生帶‘線與’的功能;而推完輸出就是強(qiáng)制拉高或拉低電平(不超過IO電流輸出能力的前提下),不需要外部上拉了。上下拉電阻在不同系列STM32里不太一樣,有的只能輸入才有,有的輸入輸出共用,和外部上下拉差不多,不過阻值不小,上下拉能力有限。復(fù)用就不說了,主要是后端與片上外設(shè)連線的關(guān)系,和IO關(guān)系不是太大。
單片機(jī)IO口輸出一般有準(zhǔn)雙向口輸出、 推挽輸出、開漏輸出等。下面介紹這三種輸出模式。
準(zhǔn)雙向口輸出:準(zhǔn)雙向口輸出就是可作為輸出也可作為輸入口,因此這個口是不定的,是準(zhǔn)雙向類型,不用重新I/O口的輸出狀態(tài) 。準(zhǔn)雙向口有3個上拉晶體管以便根據(jù)不同的需要設(shè)置表不同的參數(shù)。這三個晶體管分別是起到強(qiáng)上拉、極弱上拉、弱上拉功能。
推挽輸出:
推挽輸出是因?yàn)樗妮敵鼋Y(jié)構(gòu)類似于推挽結(jié)構(gòu),它是一種由兩個三極管(或者其他MOS管等)分別受到一個信號的控制,這信號的互補(bǔ)的,就是說只有一個三極管導(dǎo)通,一個三極管導(dǎo)通的時候另一個就要截止。推挽輸出可以輸出高電平,也可以輸出低電平。當(dāng)鎖存器為“1”時候可以持續(xù)提供強(qiáng)上拉,這種輸出結(jié)構(gòu)可以驅(qū)動需要很大電流的器件。
開漏輸出:這種結(jié)構(gòu)作為邏輯輸出時候,必須要有外部上拉,上拉電阻要為10K左右比較好,一般是通過電阻加到VCC電源,這樣才可以讀取外部狀態(tài),也就是說此時的開漏輸出的可以作為外部的輸入I/O口。
除了這些有些還附帶PWM輸出功能,芯片內(nèi)部集成PWM等,用來專門驅(qū)動電機(jī)、蜂鳴器等需要PWM的信號。
-
單片機(jī)
+關(guān)注
關(guān)注
6035文章
44554瀏覽量
634631 -
IO
+關(guān)注
關(guān)注
0文章
448瀏覽量
39132
原文標(biāo)題:通俗講解單片機(jī)IO口的輸出模式
文章出處:【微信號:changxuemcu,微信公眾號:暢學(xué)單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論