0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32的GPIO工作原理詳解

璟琰乀 ? 來(lái)源:ittbank ? 作者:ittbank ? 2020-12-18 15:36 ? 次閱讀

STM32的GPIO介紹

STM32引腳說(shuō)明

GPIO是通用輸入/輸出端口的簡(jiǎn)稱,是STM32可控制的引腳。GPIO的引腳與外部硬件設(shè)備連接,可實(shí)現(xiàn)與外部通訊、控制外部硬件或者采集外部硬件數(shù)據(jù)的功能。

STM32F103ZET6芯片為144腳芯片,包括7個(gè)通用目的的輸入/輸出口(GPIO)組,分別為GPIOA、GPIOB、GPIOC、GPIOD、GPIOE、GPIOF、GPIOG,同時(shí)每組GPIO口組有16個(gè)GPIO口。通常簡(jiǎn)略稱為PAx、PBx、PCx、PDx、PEx、PFx、PGx,其中x為0-15。

STM32的大部分引腳除了當(dāng)GPIO使用之外,還可以復(fù)用位外設(shè)功能引腳(比如串口),這部分在【STM32】STM32端口復(fù)用和重映射(AFIO輔助功能時(shí)鐘) 中有詳細(xì)的介紹。

GPIO基本結(jié)構(gòu)

每個(gè)GPIO內(nèi)部都有這樣的一個(gè)電路結(jié)構(gòu),這個(gè)結(jié)構(gòu)在本文下面會(huì)具體介紹。

rAZJBb.jpeg

這邊的電路圖稍微提一下:

保護(hù)二極管:IO引腳上下兩邊兩個(gè)二極管用于防止引腳外部過(guò)高、過(guò)低的電壓輸入。當(dāng)引腳電壓高于VDD時(shí),上方的二極管導(dǎo)通;當(dāng)引腳電壓低于VSS時(shí),下方的二極管導(dǎo)通,防止不正常電壓引入芯片導(dǎo)致芯片燒毀。但是盡管如此,還是不能直接外接大功率器件,須加大功率及隔離電路驅(qū)動(dòng),防止燒壞芯片或者外接器件無(wú)法正常工作。

P-MOS管和N-MOS管:由P-MOS管和N-MOS管組成的單元電路使得GPIO具有“推挽輸出”和“開(kāi)漏輸出”的模式。這里的電路會(huì)在下面很詳細(xì)地分析到。

TTL肖特基觸發(fā)器:信號(hào)經(jīng)過(guò)觸發(fā)器后,模擬信號(hào)轉(zhuǎn)化為0和1的數(shù)字信號(hào)。但是,當(dāng)GPIO引腳作為ADC采集電壓的輸入通道時(shí),用其“模擬輸入”功能,此時(shí)信號(hào)不再經(jīng)過(guò)觸發(fā)器進(jìn)行TTL電平轉(zhuǎn)換。ADC外設(shè)要采集到的原始的模擬信號(hào)。

這里需要注意的是,在查看《STM32中文參考手冊(cè)V10》中的GPIO的表格時(shí),會(huì)看到有“FT”一列,這代表著這個(gè)GPIO口時(shí)兼容3.3V和5V的;如果沒(méi)有標(biāo)注“FT”,就代表著不兼容5V。

STM32的GPIO工作方式

GPIO支持4種輸入模式(浮空輸入、上拉輸入、下拉輸入、模擬輸入)和4種輸出模式(開(kāi)漏輸出、開(kāi)漏復(fù)用輸出、推挽輸出、推挽復(fù)用輸出)。同時(shí),GPIO還支持三種最大翻轉(zhuǎn)速度(2MHz、10MHz、50MHz)。

每個(gè)I/O口可以自由編程,但I(xiàn)/O口寄存器必須按32位字被訪問(wèn)。

GPIO_Mode_AIN 模擬輸入

GPIO_Mode_IN_FLOATING 浮空輸入

GPIO_Mode_IPD 下拉輸入

GPIO_Mode_IPU 上拉輸入

GPIO_Mode_Out_OD 開(kāi)漏輸出

GPIO_Mode_Out_PP 推挽輸出

GPIO_Mode_AF_OD 復(fù)用開(kāi)漏輸出

GPIO_Mode_AF_PP 復(fù)用推挽輸出

下面將具體介紹GPIO的這八種工作方式:

浮空輸入模式

mAFJJv.jpeg

浮空輸入模式下,I/O端口的電平信號(hào)直接進(jìn)入輸入數(shù)據(jù)寄存器。也就是說(shuō),I/O的電平狀態(tài)是不確定的,完全由外部輸入決定;如果在該引腳懸空(在無(wú)信號(hào)輸入)的情況下,讀取該端口的電平是不確定的。

上拉輸入模式

aqmyYb.jpeg

上拉輸入模式下,I/O端口的電平信號(hào)直接進(jìn)入輸入數(shù)據(jù)寄存器。但是在I/O端口懸空(在無(wú)信號(hào)輸入)的情況下,輸入端的電平可以保持在高電平;并且在I/O端口輸入為低電平的時(shí)候,輸入端的電平也還是低電平。

下拉輸入模式

rQB7rm.jpeg

下拉輸入模式下,I/O端口的電平信號(hào)直接進(jìn)入輸入數(shù)據(jù)寄存器。但是在I/O端口懸空(在無(wú)信號(hào)輸入)的情況下,輸入端的電平可以保持在低電平;并且在I/O端口輸入為高電平的時(shí)候,輸入端的電平也還是高電平。

模擬輸入模式

vqIjIb.jpeg

模擬輸入模式下,I/O端口的模擬信號(hào)(電壓信號(hào),而非電平信號(hào))直接模擬輸入到片上外設(shè)模塊,比如ADC模塊等等。

開(kāi)漏輸出模式

viu6Ff.jpeg

開(kāi)漏輸出模式下,通過(guò)設(shè)置位設(shè)置/清除寄存器或者輸出數(shù)據(jù)寄存器的值,途經(jīng)N-MOS管,最終輸出到I/O端口。這里要注意N-MOS管,當(dāng)設(shè)置輸出的值為高電平的時(shí)候,N-MOS管處于關(guān)閉狀態(tài),此時(shí)I/O端口的電平就不會(huì)由輸出的高低電平?jīng)Q定,而是由I/O端口外部的上拉或者下拉決定;當(dāng)設(shè)置輸出的值為低電平的時(shí)候,N-MOS管處于開(kāi)啟狀態(tài),此時(shí)I/O端口的電平就是低電平。同時(shí),I/O端口的電平也可以通過(guò)輸入電路進(jìn)行讀取;注意,I/O端口的電平不一定是輸出的電平。

開(kāi)漏復(fù)用輸出模式

UryMZj.jpeg

開(kāi)漏復(fù)用輸出模式,與開(kāi)漏輸出模式很是類似。只是輸出的高低電平的來(lái)源,不是讓CPU直接寫輸出數(shù)據(jù)寄存器,取而代之利用片上外設(shè)模塊的復(fù)用功能輸出來(lái)決定的。

總結(jié)與分析

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

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

推挽電路是兩個(gè)參數(shù)相同的三極管或MOSFET,以推挽方式存在于電路中,各負(fù)責(zé)正負(fù)半周的波形放大任務(wù)。電路工作時(shí),兩只對(duì)稱的功率開(kāi)關(guān)管每次只有一個(gè)導(dǎo)通,所以導(dǎo)通損耗小、效率高。輸出既可以向負(fù)載灌電流,也可以從負(fù)載抽取電流。推拉式輸出級(jí)既提高電路的負(fù)載能力,又提高開(kāi)關(guān)速度。

2、開(kāi)漏輸出和推挽輸出的區(qū)別?

開(kāi)漏輸出:只可以輸出強(qiáng)低電平,高電平得靠外部電阻拉高。輸出端相當(dāng)于三極管的集電極。適合于做電流型的驅(qū)動(dòng),其吸收電流的能力相對(duì)強(qiáng)(一般20ma以內(nèi));

推挽輸出:可以輸出強(qiáng)高、低電平,連接數(shù)字器件。

關(guān)于推挽輸出和開(kāi)漏輸出,最后用一幅最簡(jiǎn)單的圖形來(lái)概括:

amAZvu.jpeg

該圖中左邊的便是推挽輸出模式,其中比較器輸出高電平時(shí)下面的PNP三極管截止,而上面NPN三極管導(dǎo)通,輸出電平VS+;當(dāng)比較器輸出低電平時(shí)則恰恰相反,PNP三極管導(dǎo)通,輸出和地相連,為低電平。右邊的則可以理解為開(kāi)漏輸出形式,需要接上拉。

3、在STM32中選用怎樣選擇I/O模式?

浮空輸入_IN_FLOATING ——浮空輸入,可以做KEY識(shí)別,RX1

帶上拉輸入_IPU——IO內(nèi)部上拉電阻輸入

帶下拉輸入_IPD—— IO內(nèi)部下拉電阻輸入

模擬輸入_AIN ——應(yīng)用ADC模擬輸入,或者低功耗下省電

開(kāi)漏輸出_OUT_OD ——IO輸出0接GND,IO輸出1,懸空,需要外接上拉電阻,才能實(shí)現(xiàn)輸出高電平。當(dāng)輸出為1時(shí),IO口的狀態(tài)由上拉電阻拉高電平,但由于是開(kāi)漏輸出模式,這樣IO口也就可以由外部電路改變?yōu)榈碗娖交虿蛔儭?梢宰xIO輸入電平變化,實(shí)現(xiàn)C51的IO雙向功能

推挽輸出_OUT_PP ——IO輸出0-接GND, IO輸出1 -接VCC,讀輸入值是未知的

復(fù)用功能的推挽輸出_AF_PP ——片內(nèi)外設(shè)功能(I2C的SCL、SDA)

復(fù)用功能的開(kāi)漏輸出_AF_OD——片內(nèi)外設(shè)功能(TX1、MOSI、MISO.SCK.SS)

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 電路
    +關(guān)注

    關(guān)注

    173

    文章

    6009

    瀏覽量

    174096
  • STM32
    +關(guān)注

    關(guān)注

    2282

    文章

    10986

    瀏覽量

    361083
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1237

    瀏覽量

    53256
收藏 5人收藏

    評(píng)論

    相關(guān)推薦

    微動(dòng)開(kāi)關(guān)的工作原理

    微動(dòng)開(kāi)關(guān)的工作原理
    的頭像 發(fā)表于 04-17 09:00 ?206次閱讀

    為什么GPIO配置總是出問(wèn)題?

    STM32開(kāi)發(fā)中,GPIO(通用輸入輸出)配置看似簡(jiǎn)單,但在實(shí)際開(kāi)發(fā)中,很多人常常會(huì)遇到這些困惑:明明按照教程配置了GPIO,為什么LED燈就是不亮?為什么有時(shí)候按鍵無(wú)法響應(yīng),或者響應(yīng)很慢
    的頭像 發(fā)表于 04-07 11:59 ?244次閱讀
    為什么<b class='flag-5'>GPIO</b>配置總是出問(wèn)題?

    LDO的工作原理、特性、應(yīng)用場(chǎng)景詳解

    在現(xiàn)代電子設(shè)備的復(fù)雜電路系統(tǒng)中,穩(wěn)定、高效的電源供應(yīng)至關(guān)重要。LDO,即低壓差線性穩(wěn)壓器(Low Dropout Regulator),作為電源管理領(lǐng)域的關(guān)鍵元件,發(fā)揮著不可或缺的作用。本文將深入探討 LDO 的工作原理、特性、應(yīng)用場(chǎng)景。
    的頭像 發(fā)表于 03-14 18:09 ?1260次閱讀

    電阻器工作原理詳解

    電阻器是電子電路中最基本的元件之一,其工作原理如下: 一、電阻器的工作原理 電阻器的基本原理是利用物質(zhì)的電阻性質(zhì)來(lái)控制電路中的電流。在電路中接入電阻器后,電阻器會(huì)消耗一定的電能,并將電能轉(zhuǎn)化為熱能
    的頭像 發(fā)表于 01-24 16:25 ?1861次閱讀

    FDD的工作原理詳解

    FDD(Frequency Division Duplexing,頻分雙工)的工作原理主要基于頻率復(fù)用和雙工技術(shù),實(shí)現(xiàn)上行鏈路(移動(dòng)臺(tái)到基站)和下行鏈路(基站到移動(dòng)臺(tái))的同時(shí)雙向通信。以下是對(duì)FDD
    的頭像 發(fā)表于 01-07 17:12 ?967次閱讀

    DDR5內(nèi)存的工作原理詳解 DDR5和DDR4的主要區(qū)別

    DDR5內(nèi)存的工作原理詳解 1. DDR5內(nèi)存簡(jiǎn)介 DDR5(Double Data Rate 5)是第五代雙倍數(shù)據(jù)速率同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(SDRAM)。它是DDR4的后續(xù)產(chǎn)品,提供更高
    的頭像 發(fā)表于 11-22 15:38 ?3716次閱讀

    GPIO內(nèi)部電路的原理

    前言 筆者近日在B站刷到了一個(gè)視頻,使我對(duì)GPIO的I/O口內(nèi)部基本結(jié)構(gòu)以及工作原理有了恍然大明白的理解,現(xiàn)在對(duì)此做一個(gè)總結(jié),并為大家推薦該視頻Keysking 【STM32GPIO
    的頭像 發(fā)表于 11-20 09:24 ?842次閱讀
    <b class='flag-5'>GPIO</b>內(nèi)部電路的原理

    stm32 GPIO中斷配置教程

    在嵌入式開(kāi)發(fā)中,STM32微控制器因其高性能和豐富的外設(shè)而廣受歡迎。GPIO(通用輸入/輸出)中斷是STM32微控制器中常用的功能之一,它允許開(kāi)發(fā)者在特定引腳上檢測(cè)到外部信號(hào)變化時(shí)快速響應(yīng)。 1.
    的頭像 發(fā)表于 11-19 15:53 ?2465次閱讀

    STM32 GPIO的八種工作模式

    GPIO (general purpose input output)是通用輸入輸出端口的簡(jiǎn)稱,簡(jiǎn)單來(lái)說(shuō)就是軟件可控制的引腳,STM32芯片的GPIO引腳與外部設(shè)備連接起來(lái),從而實(shí)現(xiàn)與外部通訊、控制以及數(shù)據(jù)采集的功能。
    的頭像 發(fā)表于 11-06 09:40 ?1585次閱讀
    <b class='flag-5'>STM32</b> <b class='flag-5'>GPIO</b>的八種<b class='flag-5'>工作</b>模式

    輔助電源的工作原理

     輔助電源的工作原理主要涉及在主電源發(fā)生故障或不穩(wěn)定時(shí),自動(dòng)切換到備用電源,以保證設(shè)備的持續(xù)供電。以下是關(guān)于輔助電源工作原理的詳細(xì)解釋:
    的頭像 發(fā)表于 10-21 14:56 ?912次閱讀

    鋅銀電池的工作原理

    鋅銀電池的工作原理主要基于鋅和銀兩種金屬之間的氧化還原反應(yīng)。以下是鋅銀電池工作原理的詳細(xì)解釋:
    的頭像 發(fā)表于 10-03 14:59 ?2938次閱讀

    STM32 GPIO八種模式及工作原理詳解

    一. 前言 ??GPIO全稱General Purpose Input Output,是微控制數(shù)字輸入/輸出的基本模塊,可以實(shí)現(xiàn)微控制器與外部環(huán)境的數(shù)字進(jìn)行交換。借助GPIO微控制器可以實(shí)現(xiàn)對(duì)外
    的頭像 發(fā)表于 07-22 09:32 ?7764次閱讀
    <b class='flag-5'>STM32</b> <b class='flag-5'>GPIO</b>八種模式及<b class='flag-5'>工作原理</b><b class='flag-5'>詳解</b>

    變壓器的種類與工作原理詳解

    變壓器作為電力系統(tǒng)中不可或缺的重要設(shè)備,其主要功能是改變交流電壓的大小。無(wú)論是在電力傳輸、分配,還是在工業(yè)生產(chǎn)、日常生活等領(lǐng)域,變壓器都發(fā)揮著至關(guān)重要的作用。本文將詳細(xì)探討變壓器的種類和工作原理,以期為讀者提供一個(gè)全面且深入的理解。
    的頭像 發(fā)表于 05-22 15:42 ?1527次閱讀

    頻率計(jì)的工作原理和分類詳解

    在電子工程、通信和科研領(lǐng)域,頻率計(jì)是一種不可或缺的電子測(cè)量?jī)x器。它以其高精度、高速度和高分辨率的頻率測(cè)量能力,為科研和工程實(shí)踐提供了極大的便利。本文將深入解析頻率計(jì)的工作原理,并詳細(xì)介紹其分類,以期為讀者提供全面而深入的了解。
    的頭像 發(fā)表于 05-15 16:52 ?3163次閱讀

    什么是GPIO?GPIO組成原理

    GPIO全拼叫General Purpose Input Output(通用輸入輸出)簡(jiǎn)稱IO口也叫總線擴(kuò)展器,GPIO口是由引腳,功能寄存器組成,不同的架構(gòu)中的GPIO封裝不同,所使用的引腳數(shù)與寄存器數(shù)不同,具體可以參考芯片手
    發(fā)表于 04-28 12:30 ?8944次閱讀
    什么是<b class='flag-5'>GPIO</b>?<b class='flag-5'>GPIO</b>組成原理

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品