開始規劃我的2024年micro:bit基礎程式設計指南 輸入函式組(特殊分析)11
gpio埠復用的概念和原理
埠多路復用是指將乙個引腳用於多種功能的過程。 在STM32微控制器中,每個引腳都具有多種應用功能,如GPIO、UART、SPI等。 通過配置相應的控制暫存器,我們可以將引腳設定為不同的功能。
在STM32的引腳多路復用中,每個引腳都有乙個對應的埠控制暫存器(GPIOX CRH或GPIOX CRL)和乙個多路復用控制暫存器(GPIOX AFIOx)。 埠控制暫存器用於配置引腳的一般功能部分,如輸入輸出模式、輸出速度、上拉和下拉引數,多路復用控制暫存器用於配置引腳的具體功能,通常指GPIO以外的其他應用功能。 由於GPIO功能通常被認為是預設功能,因此無需重複使用控制暫存器來重新設定它們。
下圖顯示了如何配置埠引腳功能
(2)常用IO口模式分析
這是乙個歸納,乙個總結:
1.推挽輸出:可輸出高低電平,連線數字裝置推挽式結構一般是指兩個電晶體分別由兩個互補訊號控制,當乙個電晶體導通時,另乙個總是被切斷。 高電平和低電平由IC的電源決定。
推挽電路是兩個引數相同的三極體或MOSFET,它們以推挽方式存在於電路中,每個三極體負責正負半週期的波形放大任務。 輸出既可以將電流吸收到負載中,也可以從負載中汲取電流。 推挽輸出級增加了電路的負載能力和開關速度。
詳細了解:
2、開漏輸出:輸出端相當於三極體的集電極。 要獲得高電平狀態,您需要乙個上拉電阻器。 適用於電流型驅動,其吸收電流的能力比較強(一般在20mA以內)。
該電路的開漏形式具有以下特點:
a.利用外部電路的驅動能力來降低IC內部的驅動功率。 當IC的內部MOSFET導通時,驅動電流從外部VCC流經R上拉電阻,然後MOSFET流向GND。 IC內部只需要很小的柵極驅動電流。
b.一般來說,開漏用於連線不同電平的裝置,並且使用匹配電平,因為當開漏引腳不接外部上拉電阻時,它只能輸出低電平,如果需要同時具有輸出高電平的功能,則需要連線到上拉電阻, 乙個很好的優點是可以通過改變上拉電源的電壓來改變傳輸電平。例如,帶有上拉電阻,可以提供TTL CMOS電平輸出等。 (上拉電阻的電阻決定了沿邏輯電平轉換的速度。 電阻越大,速度越低,功耗越小,因此負載電阻的選擇應同時考慮功耗和速度。 )
c.漏極開路提供了一種靈活的輸出方法,但它也有引入上公升沿延遲的缺點。 由於上公升沿由外部上拉無源電阻器充電至負載,因此選擇電阻器時延遲較小,但功耗較大相反,延遲大,功耗小。 因此,如果對延遲有要求,建議使用下降沿輸出。
d.多個漏極開路輸出引腳可以連線到一根電線上。 使用上拉電阻器,無需新增任何額外的器件即可形成“和邏輯”關係。 這也是在I2C、SMBUS等匯流排通訊中用來判斷匯流排占用狀態的原理。 其實可以簡單理解為:當所有引腳都連線在一起時,乙個外接上拉電阻,如果邏輯0有引腳輸出,相當於接地,而併聯電路“相當於被一根導線短路”,那麼外部電路的邏輯電平為0,並且只有當它高電平時, 和的結果是邏輯 1。
3、浮動輸入:對於浮動輸入,由於浮動輸入一般用於外來鍵輸入,結合圖上的輸入部分電路,可以理解為在浮動輸入狀態下,IO的電平狀態是不確定的,這完全是由外部輸入決定的,如果引腳懸空,則埠的電平不確定。
3)實際應用
1)浮動輸入在浮動-浮動輸入,可用於按鍵識別,rx
2)帶上拉輸入IPU-IO內部上拉電阻輸入。
3) 帶下拉輸入 IPD-IO 內部下拉電阻輸入。
4) 模擬輸入 AIN - 應用 ADC 模擬輸入,或以低功耗節省功耗。
5) 漏極開路輸出 od - IO 輸出 0 接 GND,IO 輸出 1 懸空,需要外部上拉電阻才能實現高輸出電平。當輸出為1時,IO口的狀態由上拉電阻上拉,但由於是漏極開路輸出模式,IO口也可以由外部電路改為低電平或不變。
6) 推挽輸出 pp - IO 輸出 0 - 連線到 GND,io 輸出 1 - 連線到 VCC。
7) 多路復用功能的推挽輸出 AF PP - 片上和片外外設功能(用於 I2C 的 SCL、SDA)。
8) 多路復用功能的開漏輸出自動對焦外徑 - 片上和片外外設功能(TX1、MOSI、MISO。sck.ss)
引腳功能的使用方式一般有5種,配置如下:
1)作為普通GPIO輸入:根據需要將引腳配置為浮動輸入、弱上拉輸入或弱下拉輸入,不要使能該引腳對應的所有多路復用功能模組。
2)作為普通GPIO輸出:根據需要將此引腳配置為推挽輸出或開漏輸出,不要使能該引腳對應的所有多路復用功能模組。
3)作為普通模擬輸入:配置引腳轉模擬輸入模式,不要使能引腳對應的所有復用功能模組。
4)輸入作為內建外設:根據需要將引腳配置為浮動輸入、弱上拉輸入或弱下拉輸入,並啟用與引腳對應的多路復用功能模組。
5)作為內建外設的輸出:根據需要將引腳配置為多路復用推挽輸出或多路復用開漏輸出,並使能該引腳對應的所有多路復用功能模組。
請注意,如果同一引腳對應多個多路復用功能模組,則只能使能其中乙個,其他模組保持未使能狀態。
以上是———
原文鏈結:超詳細解析STM32IO港八大工作模式——知乎