1. 程式人生 > >GPIO的八種工作模式

GPIO的八種工作模式


上拉輸入:若GPIO引腳配置為上拉輸入模式,在預設情況下(GPIO引腳無輸入),讀取 得的GPIO引腳資料位1,高電平。

下拉輸入:若GPIO引腳配置為下拉輸入模式,在預設情況下(GPIO引腳無輸入),讀取 得的GPIO引腳資料位0,低電平。

浮空輸入:在晶片內部既沒有接上拉,也沒有接下拉電阻,經由觸發器輸入。配置成這個模式直接用電壓表測量其引腳電壓為1點幾伏,這是個不確定值。由於其輸入阻抗較大,一般把這種模式用於標準的通訊協議如I2C,USART的接收端。

模擬輸入:關閉了施密特觸發器,不接上,下拉電阻,經由另一線路把電壓訊號傳送到片上外設模組。如傳送至ADC模組,由ADC採集電壓訊號。所以使用ADC外設時,必須設定為模擬輸入模式。


輸出模式結構:

推輓輸出模式:在輸出高電平時,P-MOS管導通,低電平時,N-MOS管導通。兩個管子輪流導通,一個負責灌電流,一個負責拉電流,使其負載能力 和開關速度都比普通的方式有很大的提高。推輓輸出的低電平為0V,高電平為3.3V。

開漏輸出模式:如果我們控制輸出為0,低電平,則使N-MOS管導通,使輸出接地,若控制輸出為1,則既不輸出高電平,也不輸出低電平,為高阻態。要正常使用必須在外部接一個上拉電阻。它具有線與特性,即多個開漏模式引腳連線到一起時,只有當所有引腳都輸出高阻態,才由上拉電阻提供高電平,此高電平的電壓為外部上拉電阻所接電源的電壓。若其中一個引腳為低電平,那線路就相當於短路接地,使得整條線路都為低電平,0V。

普通推輓輸出模式一般應用在輸出電平為0和3.3伏的場合。而普通開漏輸出模式一般應用在電平不匹配的場合,如需要輸出5V的高電平,就需要在外部接一個上拉電阻,電源為5V,把GPIO設定為開漏模式,當輸出高阻態時,由上拉電阻和電源向外輸出5V的電平。

對於相應的複用模式,則是根據GPIO的複用功能來選擇的,如GPIO的引腳用作串列埠的輸出,則使用複用推輓輸出模式。如果用在需要線與功能的複用場合,就使用複用開漏模式。在使用任何一種開漏模式時,都需要接上拉電阻。