GPIO的8種工作方式:一、4 種輸入模式1.1? Floating Input? 浮空輸入1.2? Pull-up Input? 上拉輸入1.3? Pull-down Input? 下拉輸入1.4? Analog Input? 模擬輸入二、4種輸出模式2.1? General Push-Pull Output? 推挽輸出2.2? General Open-Drain Output? 開漏輸出2.3? Alternate?General Push-Pull Output? 復用推挽輸出2.4? Alternate?General Open-Drain Output? 復用開漏輸出
4種輸入模式原理及特點
1. 浮空輸入(Floating Input)
電路原理:引腳內部既不接上拉電阻(到 VDD),也不接下拉電阻(到 GND),直接連接到施密特觸發器(數字信號整形電路)。
核心特點:外部信號直接決定引腳電平,無外部信號時,引腳電平隨空間電磁干擾波動(“浮空” 即 “懸浮不定”)。
信號路徑:外部信號 → 施密特觸發器 → 內部數字電路(如寄存器)。
例:外部接按鍵且已串聯上拉電阻時,無需內部電阻,用浮空輸入檢測按鍵狀態。2. 上拉輸入(Pull-up Input)
電路原理:引腳內部通過開關接入上拉電阻(電阻值通常為 30-50kΩ,連接到 VDD),同時連接施密特觸發器。
核心特點:無外部信號時,上拉電阻將引腳 “拉到高電平”(接近 VDD);外部輸入低電平時(如接地),引腳被拉低。
關鍵作用:通過內部電阻消除 “懸空狀態”,確保無外部信號時電平穩定。
例:按鍵一端接引腳,另一端接地,用上拉輸入時,按鍵未按則引腳為高電平,按下為低電平。3. 下拉輸入(Pull-down Input)
電路原理:與上拉輸入對稱,內部接入下拉電阻(連接到 GND),同時連接施密特觸發器。
核心特點:無外部信號時,下拉電阻將引腳 “拉到低電平”;外部輸入高電平時,引腳被拉高。
適用場景:外部信號為高電平有效(如傳感器輸出高電平觸發中斷),避免無信號時電平波動。4. 模擬輸入(Analog Input)
電路原理:引腳直接連接到 ADC(模數轉換器)的模擬信號通道,斷開所有內部上拉 / 下拉電阻和施密特觸發器(數字電路被隔離)。
核心特點:保留外部信號的 “連續電壓特性”(而非轉為 0/1 數字信號),確保 ADC 能采樣到真實的模擬電壓(如 0-3.3V 的漸變信號)。
例:連接光敏電阻(輸出隨光照變化的電壓),用模擬輸入讓 ADC 讀取光照強度。
4種輸出模式原理及特點
5. 推挽輸出(General Push-Pull Output)
電路原理:輸出級由兩個互補晶體管(NPN 和 PNP)組成:
輸出高電平時,NPN 管截止,PNP 管導通,引腳通過 PNP 管連接到 VDD(輸出高電平≈VDD);
輸出低電平時,PNP 管截止,NPN 管導通,引腳通過 NPN 管連接到 GND(輸出低電平≈0V)。
核心特點:能主動輸出高 / 低電平,驅動能力強(拉電流和灌電流較大,通常可達 20mA),無需外部電阻。
例:直接驅動 LED(高電平點亮時,PNP 管提供拉電流;低電平點亮時,NPN 管提供灌電流)。6. 開漏輸出(General Open-Drain Output)
電路原理:輸出級只有 NPN 晶體管,PNP 晶體管被移除:
輸出低電平時,NPN 管導通,引腳接地(低電平≈0V);
輸出高電平時,NPN 管截止,引腳處于 “高阻態”(相當于斷開),需通過外部上拉電阻連接到 VDD 才能輸出高電平。
核心特點:不能主動輸出高電平(依賴外部電阻),但支持 “線與” 功能(多個開漏輸出引腳接同一總線,任一輸出低電平則總線為低)。
例:I2C 總線的 SDA/SCL 線,多個設備通過開漏輸出共享總線,避免信號沖突。7. 復用推挽輸出(Alternate Function Push-Pull)
電路原理:輸出級結構與 “推挽輸出” 相同(互補晶體管),但控制信號來源從 “GPIO 控制器” 切換到 “片上外設”(如定時器、SPI、UART 等)。
核心特點:引腳功能被 “復用” 給外設,由外設直接驅動推挽輸出級,兼顧外設功能和強驅動能力。
例:定時器的 PWM 輸出引腳配置為復用推挽,由定時器直接控制高低電平切換,驅動電機調速。8. 復用開漏輸出(Alternate Function Open-Drain)
電路原理:輸出級結構與 “開漏輸出” 相同(僅 NPN 晶體管),但控制信號來自片上外設,而非 GPIO 控制器。
核心特點:外設通過開漏結構輸出信號,需外部上拉電阻,適合需要線與或電平轉換的外設場景。
例:I2C 外設的引腳配置為復用開漏,由 I2C 控制器控制輸出,通過外部上拉電阻實現多設備通信。