<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
"); //-->

博客專(zhuān)欄

EEPW首頁(yè) > 博客 > GPIO基礎知識的概括?。ㄗ钊Y料)

GPIO基礎知識的概括?。ㄗ钊Y料)

發(fā)布人:xiaomaidashu 時(shí)間:2023-09-21 來(lái)源:工程師 發(fā)布文章

GPIO 是通用輸入/輸出端口的簡(jiǎn)稱(chēng),本文以STM32為例進(jìn)行說(shuō)明,其他的單片機功能上都是大同小異,學(xué)會(huì )STM32的GPIO,我們可以觸類(lèi)旁通。

GPIO 的引腳與外部硬件設備連接,可實(shí)現與外部通訊、控制外部硬件或者采集外部硬件數據的功能。

STM32的八種GPIO口模式

1) GPIO_Mode_AIN 模擬輸入;
2) GPIO_Mode_IN_FLOATING 浮空輸入;
3) GPIO_Mode_IPD 下拉輸入;
4) GPIO_Mode_IPU 上拉輸入;
5) GPIO_Mode_Out_OD 開(kāi)漏輸出;
6) GPIO_Mode_Out_PP 推挽輸出;
7) GPIO_Mode_AF_OD 復用開(kāi)漏輸出;
8) GPIO_Mode_AF_PP 復用推挽輸出。

STM32 普通 GPIO 內部邏輯圖

圖片

保護二極管:IO引腳上下兩邊兩個(gè)二極管用于防止引腳外部過(guò)高、過(guò)低的電壓輸入。

當引腳電壓高于VDD時(shí),上方的二極管導通;當引腳電壓低于VSS時(shí),下方的二極管導通,防止不正常電壓引入芯片導致芯片燒毀。也叫鉗位二極管。

P-MOS管和N-MOS管:

由P-MOS管和N-MOS管組成的單元電路使得GPIO具有“推挽輸出”和“開(kāi)漏輸出”的模式。

TTL肖特基觸發(fā)器:

信號經(jīng)過(guò)觸發(fā)器后,模擬信號轉化為0和1的數字信號。但是,當GPIO引腳作為ADC采集電壓的輸入通道時(shí),用其“模擬輸入”功能,此時(shí)信號不再經(jīng)過(guò)觸發(fā)器進(jìn)行TTL電平轉換。(可以理解為一個(gè)比較器,大于某個(gè)值是1,小于某個(gè)值是0)

查看《STM32中文參考手冊V10》中的GPIO的表格時(shí),會(huì )看到有“FT”一列,這代表著(zhù)這個(gè)GPIO口時(shí)兼容3.3V和5V的;

如果沒(méi)有標注“FT”,就代表著(zhù)不兼容5V。比如STM32F103VET6的GPIOE口那一組全部兼容5V,其他組是部分兼容5V。

備注:導通路徑為黃色部分。

1、模擬輸入 GPIO_Mode_AIN

圖片

此模式可以檢測外部輸入的模擬電壓,可以檢測電壓值,只要不高于Vcc即可。

2、浮空輸入 GPIO_MODE_IN_FLOATING

圖片

此模式最常用的是檢測按鍵,可以接收高低電平。但容易被干擾。

3、下拉輸入GPIO_Mode_IPD

圖片

此模式檢測到電平默認為低,可以檢測到由低到高的電平變化。

4、上拉輸入GPIO_Mode_IPU

圖片

此模式檢測到電平默認為高,可以檢測到由高到低的電平變化。

5、開(kāi)漏輸出GPIO_Mode_Out_OD

圖片

開(kāi)漏輸出用于輸出低電平,高電平靠外部上拉電阻電壓決定,適用于快速切換電壓的外部電路結構。

6、推挽輸出GPIO_Mode_Out_PP

圖片

推挽輸出用于輸出高低電平,是最常用的模式。

7、復用開(kāi)漏輸出GPIO_Mode_AF_OD

圖片

復用 IIC 時(shí)候選擇復用開(kāi)漏輸出,因為開(kāi)漏輸出可以“線(xiàn)與”。

8、復用推挽輸出GPIO_Mode_AF_PP

圖片

其他復用比如 SPI 等可以選擇復用推挽輸出。

什么是推挽結構和推挽電路?

推挽結構一般是指兩個(gè)參數相同的三極管或MOS管分別受兩互補信號的控制,總是在一個(gè)三極管或MOS管導通的時(shí)候另一個(gè)截止。高低電平由輸出電平?jīng)Q定。

推挽輸出和開(kāi)漏輸出


圖片


左側為推挽輸出,可以輸出高低電平。右側為開(kāi)漏輸出,只能輸出低電平,高電平靠外部上拉電阻決定。

圖中所示為三極管,也可以叫開(kāi)集輸出(集電極開(kāi)路輸出),開(kāi)漏輸出是當這個(gè)管子為MOS管,漏極開(kāi)路輸出,叫開(kāi)漏輸出。

推挽輸出:上面三級管導通,輸出高電平,下面三極管導通,輸出低電平。

開(kāi)漏輸出:三極管導通輸出低電平,三極管截止是高阻態(tài),電平由外部上拉電阻決定。

推挽輸出高電平(向負載推流):


圖片


推挽輸出低電平(從負載拉流):


圖片



*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。



關(guān)鍵詞: GPIO

相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>