博客專欄

        EEPW首頁 > 博客 > GPIO基礎(chǔ)知識的概括!(最全資料)

        GPIO基礎(chǔ)知識的概括!(最全資料)

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

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

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

        STM32的八種GPIO口模式

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

        STM32 普通 GPIO 內(nèi)部邏輯圖

        圖片

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

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

        P-MOS管和N-MOS管:

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

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

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

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

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

        備注:導(dǎo)通路徑為黃色部分。

        1、模擬輸入 GPIO_Mode_AIN

        圖片

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

        2、浮空輸入 GPIO_MODE_IN_FLOATING

        圖片

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

        3、下拉輸入GPIO_Mode_IPD

        圖片

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

        4、上拉輸入GPIO_Mode_IPU

        圖片

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

        5、開漏輸出GPIO_Mode_Out_OD

        圖片

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

        6、推挽輸出GPIO_Mode_Out_PP

        圖片

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

        7、復(fù)用開漏輸出GPIO_Mode_AF_OD

        圖片

        復(fù)用 IIC 時(shí)候選擇復(fù)用開漏輸出,因?yàn)殚_漏輸出可以“線與”。

        8、復(fù)用推挽輸出GPIO_Mode_AF_PP

        圖片

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

        什么是推挽結(jié)構(gòu)和推挽電路?

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

        推挽輸出和開漏輸出


        圖片


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

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

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

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

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


        圖片


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


        圖片



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



        關(guān)鍵詞: GPIO

        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 柯坪县| 石屏县| 正阳县| 昆明市| 武夷山市| 会宁县| 京山县| 新巴尔虎左旗| 澎湖县| 吉安县| 天水市| 顺义区| 平顶山市| 腾冲县| 双柏县| 甘谷县| 高陵县| 日喀则市| 德令哈市| 博野县| 房产| 潼关县| 福贡县| 营山县| 垦利县| 古丈县| 肥西县| 信阳市| 饶阳县| 隆安县| 宝应县| 正宁县| 杭锦旗| 金阳县| 巢湖市| 株洲市| 邛崃市| 微博| 郓城县| 甘洛县| 麻栗坡县|