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

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

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

深入理解GPIO原理和運(yùn)用

星星科技指導(dǎo)員 ? 來源:億佰特電子科技 ? 作者:億佰特電子科技 ? 2024-02-19 16:12 ? 次閱讀

當(dāng)我們談?wù)撉度胧较到y(tǒng)和單片機(jī)編程時,GPIO(General Purpose Input/Output)是一個非常重要的概念。

GPIO是一種常見的數(shù)字接口,用于連接微控制器和其他數(shù)字信號的設(shè)備。GPIO允許微控制器讀取和寫入數(shù)字信號,從而控制外部設(shè)備的狀態(tài)和讀取外部設(shè)備的輸入信號。

GPIO具有多種引腳配置,可以配置為輸入模式或輸出模式。在輸入模式下,GPIO可以讀取外部設(shè)備的狀態(tài),通常通過高電平(1)或低電平(0)來表示。在輸出模式下,GPIO可以控制外部設(shè)備的狀態(tài),通過輸出高電平或低電平來控制設(shè)備的開關(guān)狀態(tài)。

GPIO允許我們的單片機(jī)與外部世界進(jìn)行通信,它是我們控制外部設(shè)備和接收外部信號的接口。下圖是I/O端口位的基本結(jié)構(gòu)圖:

20241181519545911.jpg

首先,讓我們來了解一下GPIO的基本原理。GPIO引腳可以被配置為輸入或輸出模式,GPIO工作模式主要有8種。如下表:

模式名稱 性質(zhì) 特征
浮空輸入 數(shù)字輸入 可讀取引腳電平,若引腳懸空,則電平不確定
上拉輸入 數(shù)字輸入 可讀取引腳電平,內(nèi)部連接上拉電阻,懸空時默認(rèn)高電平
下拉輸入 數(shù)字輸入 可讀取引腳電平,內(nèi)部連接下拉電阻,懸空時默認(rèn)低電平
模擬輸入 模擬輸入 GPIO無效,引腳直接接入內(nèi)部ADC
開漏輸出 數(shù)字輸出 可輸出引腳電平,高電平為高阻態(tài),低電平接VSS
推挽輸出 數(shù)字輸出 可輸出引腳電平,高電平接VDD,低電平接VSS
復(fù)用開漏輸出 數(shù)字輸出 由片上外設(shè)控制,高電平為高阻態(tài),低電平接VSS
復(fù)用推挽輸出 數(shù)字輸出 由片上外設(shè)控制,高電平接VDD,低電平接VSS

嵌入式系統(tǒng)中,GPIO扮演著至關(guān)重要的角色。GPIO使得我們的單片機(jī)能夠與各種外部設(shè)備進(jìn)行通信,從而實(shí)現(xiàn)各種功能。舉例來說:

①基本輸入輸出功能:利用GPIO輸出來控制燈光、開關(guān);輸入來監(jiān)測溫度、檢測門窗狀態(tài)等。又或者在機(jī)器人控制系統(tǒng)中,GPIO可以用來控制電機(jī)、接收傳感器數(shù)據(jù)等。

②中斷模式:GPIO可以通過中斷和事件的方式來實(shí)現(xiàn)異步通知。這意味著當(dāng)外部事件發(fā)生時,單片機(jī)可以立即得到通知并作出相應(yīng)的處理。通過GPIO的電平變換可以觸發(fā)一個中斷,通知單片機(jī)進(jìn)行相應(yīng)的處理,而不需要單片機(jī)不斷地輪詢按鈕狀態(tài)。單片機(jī)GPIO接口中斷模式,當(dāng)外部設(shè)備狀態(tài)發(fā)生變化時,可以產(chǎn)生中斷信號通知微控制器。此外,GPIO還具有可編程的輸出類型和上拉或下拉電阻配置,可以根據(jù)需要進(jìn)行配置。

③復(fù)用各類通信外設(shè)功能:單片機(jī)的GPIO引腳還可以配置為SPI接口、I2C、UART通信接口,從而實(shí)現(xiàn)與外部設(shè)備的高速數(shù)據(jù)傳輸。

在實(shí)際應(yīng)用中,我們需要根據(jù)具體的需求來合理地配置和使用GPIO。合理的GPIO使用不僅可以提高系統(tǒng)的性能和穩(wěn)定性,還可以減少功耗和資源占用。因此,對GPIO原理的深入理解和靈活運(yùn)用是非常重要的。

審核編輯:黃飛

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

    關(guān)注

    48

    文章

    7552

    瀏覽量

    151426
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6037

    文章

    44558

    瀏覽量

    635350
  • 嵌入式系統(tǒng)
    +關(guān)注

    關(guān)注

    41

    文章

    3593

    瀏覽量

    129476
  • 數(shù)字信號
    +關(guān)注

    關(guān)注

    2

    文章

    970

    瀏覽量

    47551
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1204

    瀏覽量

    52102
收藏 人收藏

    評論

    相關(guān)推薦

    深入理解Android

    深入理解Android
    發(fā)表于 08-20 15:30

    深入理解和實(shí)現(xiàn)RTOS_連載

    和trcohili的帖子。深入理解和實(shí)現(xiàn)RTOS_連載1_RTOS的前生今世今天發(fā)布的是第一篇,"RTOS的前生今世"。通過軟件系統(tǒng)結(jié)構(gòu)的比對簡要的介紹rtos為何而生。如果讀者對RTOS
    發(fā)表于 05-29 11:20

    深入理解和實(shí)現(xiàn)RTOS_連載

    和trcohili的帖子。trochili rtos完全是作者興趣所在,且行且堅持,比沒有duo。深入理解和實(shí)現(xiàn)RTOS_連載1_RTOS的前生今世今天發(fā)布的是第一篇,"RTOS的前生今世"
    發(fā)表于 05-30 01:02

    深入理解lte-a

    深入理解LTE-A
    發(fā)表于 02-26 10:21

    如何深入理解運(yùn)用二極管鉗位作用?

    二極管鉗位作用如何運(yùn)用?在電路設(shè)計過程中很多位置需要用二極管鉗位,如何深入理解運(yùn)用?
    發(fā)表于 04-03 03:03

    如何深入理解ES6之函數(shù)

    深入理解ES6之函數(shù)
    發(fā)表于 05-22 07:40

    深入理解STM32

    時鐘系統(tǒng)是處理器的核心,所以在學(xué)習(xí)STM32所有外設(shè)之前,認(rèn)真學(xué)習(xí)時鐘系統(tǒng)是必要的,有助于深入理解STM32。下面是從網(wǎng)上找的一個STM32時鐘框圖,比《STM32中文參考手冊》里面的是中途看起來清晰一些:重要的時鐘:PLLCLK,SYSCLK,HCKL,PCLK1,...
    發(fā)表于 08-12 07:46

    TIM,systick,GPIO,USART,NVIC深入理解

    本文是我在知乎上的一篇回答,有興趣的朋友可以參考下面的鏈接,不過兩篇文章是一樣的。本文適用于初學(xué)者。硬件功能方面,十分建議學(xué)習(xí)好TIM,systick,GPIO,USART,NVIC這幾個東西,最好能深入理解,因?yàn)檫@幾個東西常常是出現(xiàn)在很多個項目當(dāng)中的,非常重要的東西。一
    發(fā)表于 08-23 08:28

    對棧的深入理解

    為什么要深入理解棧?做C語言開發(fā)如果棧設(shè)置不合理或者使用不對,棧就會溢出,溢出就會遇到無法預(yù)測亂飛現(xiàn)象。所以對棧的深入理解是非常重要的。注:動畫如果看不清楚可以電腦看更清晰啥是棧先來看一段動畫:沒有
    發(fā)表于 02-15 07:01

    為什么要深入理解

    [導(dǎo)讀] 從這篇文章開始,將會不定期更新關(guān)于嵌入式C語言編程相關(guān)的個人認(rèn)為比較重要的知識點(diǎn),或者踩過的坑。為什么要深入理解棧?做C語言開發(fā)如果棧設(shè)置不合理或者使用不對,棧就會溢出,溢出就會遇到無法
    發(fā)表于 02-15 06:09

    深入理解Android之資源文件

    深入理解Android之資源文件
    發(fā)表于 01-22 21:11 ?22次下載

    深入理解Android》文前

    深入理解Android》文前
    發(fā)表于 03-19 11:23 ?0次下載

    深入理解Android:卷I》

    深入理解Android:卷I》
    發(fā)表于 03-19 11:23 ?0次下載

    深入理解Android網(wǎng)絡(luò)編程

    深入理解Android網(wǎng)絡(luò)編程
    發(fā)表于 03-19 11:26 ?1次下載

    深入理解MOS管電子版資源下載

    深入理解MOS管電子版資源下載
    發(fā)表于 07-09 09:43 ?0次下載