STM32——GPIO介紹

        GPIO(General-Purpose IO ports,通用輸入/輸出接口)模塊是STM32的外設接口的核心部分,用于感知外界信號(輸入模式)和控制外部設備(輸出模式),支持多種工作模式和配置選項。

1、GPIO 基本結構

        STM32F407 的每個 GPIO 引腳均可獨立配置,主要特性包括:

  • 9 組 GPIO 端口(GPIOA ~ GPIOI),每組最多 16 個引腳(PIN0 ~ PIN15)。

  •  每個引腳可配置為輸入、輸出、復用功能或模擬模式。
  • 支持多種驅動模式(推挽、開漏)、速度等級和上下拉電阻。
  • 支持外部中斷 / 事件觸發。

        I/O 端口的基本結構 :

2、GPIO 工作模式

         每個引腳可通過 GPIOx_MODER 寄存器配置為以下模式:

/** * @brief  GPIO Configuration Mode enumeration */   
typedef enum
{ GPIO_Mode_IN   = 0x00, /*!< GPIO Input Mode */GPIO_Mode_OUT  = 0x01, /*!< GPIO Output Mode */GPIO_Mode_AF   = 0x02, /*!< GPIO Alternate function Mode */GPIO_Mode_AN   = 0x03  /*!< GPIO Analog Mode */
}GPIOMode_TypeDef;
#define IS_GPIO_MODE(MODE) (((MODE) == GPIO_Mode_IN)  || ((MODE) == GPIO_Mode_OUT) || \((MODE) == GPIO_Mode_AF)|| ((MODE) == GPIO_Mode_AN))

2.1、輸入模式

2.1.1、浮空輸入(Input Floating)

        引腳電平由外部電路決定,無內部上拉 / 下拉。上拉 / 下拉電阻為斷開狀態,施密特觸發器打開,輸出被禁止。輸入浮空模式下,IO 口的電平完全是由外部電路決定的。如果 IO 引腳沒有連接其他的設備,那么檢測其輸入電平是不確定的。

        浮空輸入的特點:

  • 高阻態:引腳內部無上拉/下拉電阻,電平完全由外部電路決定。
  • 靈敏度高:易受外部信號或噪聲影響,需確保外部電路有明確的驅動源。 
  • 低功耗:無內部電阻電流路徑,適合低功耗場景(需外部電路穩定)。

        該模式典型應用場景:

1、外部中斷(EXIT)

  • 場景:連接按鍵、傳感器等需要觸發中斷的設備。
  • 原因:若外部電路已包含明確的上拉/下拉電阻(如按鍵電路),使用浮空輸入可避免內部電阻的干擾。

2、 通信接口(如 IIC、UART)

  • 場景:IIC 的 SDA / SCL 線、UART 的 RX 引腳。
  • 原因:IIC 總線需外接上拉電阻,浮空輸入避免內部電阻沖突;UART 接收端有外部設備驅動電平。

3、多設備總線(如 CAN、SPI)

  • 場景:總線型通信(如 CAN 總線、SPI 從設備 MISO)
  • 原因:總線電平由外部收發器或多主機設備控制,浮空輸入確保無內部干擾。 

4、高速數字信號采樣

  • 場景:高頻脈沖計數(如編碼器信號、PWM 輸入捕獲)。
  • 原因:浮空輸入響應速度快,適合高速信號采集(需外部信號驅動能力強)。 

5、模擬信號預處理

  • 場景:連接比較器、運放等模擬電路的輸出端。
  • 原因:避免內部電阻影響模擬電路輸出的高精度電平。 

2.1.2、上拉輸入(Input Pull-up)

        內部上拉電阻(約40kΩ)連接到 VDD。 上拉電阻導通,施密特觸發器打開,輸出被禁止。在需要外部上拉電阻的時候,可以使用內部上拉電阻,這樣就可以節省一個外部電阻,但是內部上拉電阻的阻值較大,不適合做電流型驅動。

        上拉輸入的特點:

  • 默認高電平:當引腳無外部驅動時,內部上拉電阻將電平拉至 VDD(3.3V)。
  • 抗干擾能力強:避免引腳懸空導致的電平漂移,較少噪聲影響。
  • 簡化外部電路:省去外部上拉電阻,節省 PCB 空間和成本。 

        該模式典型應用場景:

1、按鍵/開關檢測

  • 場景:按鍵一端接地(低電平有效),按下時拉低引腳電平。
  • 原理:未按下時,內部上拉電阻使引腳保持高電平;按下時接地,電平變為低。 

 2、數字信號輸入(無主動驅動高電平)

  • 場景:連接開漏輸出的傳感器(如某些紅外模塊)。
  • 原理:傳感器只能拉低電平,需上拉電阻提供默認高電平。

3、總線空閑狀態維持

  • 場景:單線通信協議(如 1-Wire)或自定義串行總線。
  • 原理:總線空閑時由上拉電阻維持高電平,設備通過拉低電平發送數據。 

4、電平轉換接口

  • 場景:連接 5V 設備(通過電平轉換芯片)。
  • 原理:若轉換芯片輸出為開漏模式,需上拉電阻提供 3.3V 高電平。 

5、防止未初始化引腳懸空

  • 場景:未使用的 GPIO 引腳。
  • 原理:配置為上拉輸入,避免懸空引入噪聲或意外電流。 

2.1.3、下拉輸入(Input Pull-down)

        內部下拉電阻(約40kΩ)連接到 GND。 下拉電阻導通,施密特觸發器打開,輸出被禁止。在需要外部下拉電阻的時候,可以使用內部下拉電阻,這樣也就可以節省一個外部電阻,但是內部下拉電阻的阻值較大,所以不適合做電流型驅動。

        下拉輸入的特點:

  • 默認低電平:當引腳無外部驅動時,內部下拉電阻將電平拉至 GND(0 V)。
  • 抗干擾能力強:避免引腳懸空導致的高電平誤觸發。
  • 簡化外部電路:省去外部下拉電阻,節省 PCB 空間和成本。

        該模式典型應用場景:

1、高電平有效信號檢測

  • 場景:檢測傳感器或模塊的高電平輸出(如紅外避障傳感器、PIR 人體感應模塊)。
  • 原理:未觸發時引腳電平被下拉至低電平;觸發時外部設備輸出高電平。 

2、總線型通信的從設備選擇

  • 場景:SPI 從設備的片選(CS)信號。
  • 原理:主設備未選中從設備時,片選線保持低電平(下拉);選中時主設備拉高電平。 

3、數字信號防抖動

  • 場景:連接機械開關或繼電器觸點。
  • 原理:下拉電阻確保開關斷開時引腳為低電平,減少觸點抖動引入的噪聲。 

4、電平轉換接口

  • 場景:連接 5V 設備的開漏輸出(如某些老式傳感器)。
  • 原理:外部設備拉高電平時,通過電平轉換芯片輸出 3.3V 高電平;未激活時下拉至低電平。 

5、未使用引腳的穩定處理

  • 場景:未連接的 GPIO 引腳。
  • 原理:配置為下拉輸入,避免懸空引腳引入噪聲或意外功耗。 

2.1.4、模擬輸入(Analog Mode)

        上下拉電阻斷開,施密特觸發器關閉,雙 MOS 管也關閉。該模式用于 ADC 采集或 DAC 輸出,或者低功耗下省電。

 

        模擬輸入的特點:

  •  禁用數字功能:引腳的數字輸入/輸出電路被斷開,僅保留模擬信號路徑。
  • 高精度低噪聲:避免數字電路干擾,提高 ADC/DAC 的采樣精度。
  • 無上拉/下拉:內部電阻斷開,信號完全由外部模擬源驅動。

        該模式典型應用場景:

1、傳感器信號采集

  • 場景:連接模擬輸出傳感器(如溫度、壓力、光照、濕度傳感器)。
  • 示例: 

        (1)溫度傳感器(如 LM35、NTC 熱敏電阻):輸出電壓隨溫度變化。

        (2)光敏電阻:電阻值隨光照強度變化&#x

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/71802.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/71802.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/71802.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

學習筆記:Python網絡編程初探之基本概念(一)

一、網絡目的 讓你設備上的數據和其他設備上進行共享&#xff0c;使用網絡能夠把多方鏈接在一起&#xff0c;然后可以進行數據傳遞。 網絡編程就是&#xff0c;讓在不同的電腦上的軟件能夠進行數據傳遞&#xff0c;即進程之間的通信。 二、IP地址的作用 用來標記唯一一臺電腦…

DeepSeek 醫療大模型微調實戰討論版(第一部分)

DeepSeek醫療大模型微調實戰指南第一部分 DeepSeek 作為一款具有獨特優勢的大模型,在醫療領域展現出了巨大的應用潛力。它采用了先進的混合專家架構(MoE),能夠根據輸入數據的特性選擇性激活部分專家,避免了不必要的計算,極大地提高了計算效率和模型精度 。這種架構使得 …

JetBrains學生申請

目錄 JetBrains學生免費授權申請 IDEA安裝與使用 第一個JAVA代碼 1.利用txt文件和cmd命令運行 2.使用IDEA新建項目 JetBrains學生免費授權申請 本教程采用學生校園郵箱申請&#xff0c;所以要先去自己的學校申請校園郵箱。 進入JetBrains官網 點擊立即申請&#xff0c;然…

LINUX網絡基礎 [五] - HTTP協議

目錄 HTTP協議 預備知識 認識 URL 認識 urlencode 和 urldecode HTTP協議格式 HTTP請求協議格式 HTTP響應協議格式 HTTP的方法 HTTP的狀態碼 ?編輯HTTP常見Header HTTP實現代碼 HttpServer.hpp HttpServer.cpp Socket.hpp log.hpp Makefile Web根目錄 H…

六十天前端強化訓練之第八天到第十四天——綜合案例:用戶管理系統

歡迎來到編程星辰海的博客講解 看完可以給一個免費的三連嗎&#xff0c;謝謝大佬&#xff01; 目錄 一、知識體系詳解 1. 變量與作用域 2. 箭頭函數特性 3. 數組高階函數 4. DOM操作原理 5. 事件傳播機制 6. 閉包核心原理 7. 原型繼承體系 8. Promise工作流程 二、綜…

技術周總結 03.03 - 03.09 周日(Java監控 SpringAI)

文章目錄 一、03.05 周三二、03.08 周六openAI 的Spring開發 一、03.05 周三 jvisualvm java自帶的監控和故障排除工具 命令行執行后&#xff0c;會出現 JConsole 二、03.08 周六 openAI 的Spring開發 引入 spring-ai-openai-spirng-boot-starter 依賴 Spring AI http…

DeepSeek:中國AGI破局者的技術革命與生態重構

在AI領域被"算力霸權"與"技術壟斷"籠罩的今天&#xff0c;一家來自杭州的初創公司正以顛覆性創新撕開行業鐵幕。DeepSeek&#xff08;深度求索&#xff09;不僅重新定義了AGI技術研發范式&#xff0c;更通過開源生態構建引發全球AI產業格局的深度重構。 一…

manus本地部署使用體驗

manus部署 https://github.com/mannaandpoem/OpenManus git clone https://github.com/mannaandpoem/OpenManus.git 或者手工下載zip包解壓&#xff0c;包很小&#xff0c;只有幾百K。 cd OpenManus-main #創建python環境&#xff0c;有python3的可以用python3 python -m ven…

【統計至簡】【入門測試1】給定數據矩陣X,如何求其質心、中心化數據、標準化數據、格拉姆矩陣、協方差矩陣、相關系數矩陣

給定數據矩陣X&#xff0c;如何求其質心、中心化數據、標準化數據、格拉姆矩陣、協方差矩陣、相關系數矩陣。 ??設數據矩陣 X X X是一個 n p n\times p np的矩陣&#xff0c;其中 n n n是樣本數量&#xff0c; p p p是變量數量&#xff0c; X ( x i j ) X (x_{ij}) X(xij?…

CI/CD—Jenkins、Maven安裝

Jenkins簡介 Jenkins 是一款廣泛使用的開源持續集成和持續交付&#xff08;CI/CD&#xff09;工具&#xff0c;以下是對它的詳細介紹&#xff1a; 基本信息 起源與發展&#xff1a;Jenkins 最早起源于 Hudson 項目&#xff0c;后來從 Hudson 項目中分離出來獨立發展。自 2011 …

抽獎系統測試報告

項目鏈接: 管理員登錄頁面 項目功能: 管理員登錄: 登錄方式分為兩種: 手機號密碼登錄: 正確輸入密碼和手機號登錄 短信驗證碼登錄: 輸入手機號,等待驗證碼,輸入驗證碼登錄 管理員注冊: 登錄頁面點擊注冊按鈕即可注冊管理員身份 人員管理模塊: 人員管理模塊分為注冊…

【高級篇】大疆Pocket 3加ENC編碼器實現無線RTMP轉HDMI進導播臺

【高級篇】大疆Pocket 3加ENC編碼器實現無線RTMP轉HDMI進導播臺 文章目錄 準備工作連接設備RTMP概念ENCSHV2推流地址設置大疆Pocket 3直播設置總結 老鐵們好&#xff01; 很久沒寫軟文了&#xff0c;今天給大家帶了一個干貨&#xff0c;如上圖&#xff0c;大疆Pocket 3加ENC編…

【 <一> 煉丹初探:JavaWeb 的起源與基礎】之 Servlet 與 JSP 的協作:MVC 模式的雛形

<前文回顧> 點擊此處查看 合集 https://blog.csdn.net/foyodesigner/category_12907601.html?fromshareblogcolumn&sharetypeblogcolumn&sharerId12907601&sharereferPC&sharesourceFoyoDesigner&sharefromfrom_link <今日更新> 一、Servl…

【不是廣告】華為昇騰的一小步,Pytorch的一大步

華為昇騰的一小步&#xff0c;Pytorch的一大步 關鍵詞 首個、中國首個、全球第十、最高級別&#xff01;看看這些字眼&#xff0c;就知道事情不簡單&#xff01; 書接上文《Pytorch的一小步&#xff0c;昇騰芯片的一大步》 在2023年10月4日PyTorch 2.1版本的發布博客上&…

python從入門到精通(二十六):python文件操作之Word全攻略(基于python-docx)

python文件操作之word技巧大全 word技巧基礎到高級操作大全A.準備工作1. 安裝python-docx庫2. 導入庫 B.基礎操作1. 創建Word文檔1.1 創建文檔對象1.2 添加word標題1.3 添加word段落1.4 設置段落樣式1.5 創建有序列表1.6 創建無序列表1.7添加word分頁1.8 添加word圖片1.9 添加w…

Debian二次開發一體化工作站:提升科研效率的智能工具

在科研領域&#xff0c;數據處理是實驗成功的關鍵環節之一。隨著實驗數據的復雜性和規模不斷增加&#xff0c;傳統的數據處理方法已經難以滿足科研人員的需求。這時&#xff0c;一體化工作站應運而生&#xff0c;成為科研實驗數據處理的 “智能大腦”。 一體化工作站&#xff…

linux學習(五)(服務器審查,正常運行時間負載,身份驗證日志,正在運行的服務,評估可用內存)

服務器審查 在 Linux 中審查服務器的過程包括評估服務器的性能、安全性和配置&#xff0c;以確定需要改進的領域或任何潛在問題。審查的范圍可以包括檢查安全增強功能、檢查日志文件、審查用戶帳戶、分析服務器的網絡配置以及檢查其軟件版本。 Linux 以其穩定性和安全性而聞名…

Redis- 大key

大key 什么是大key問題大key的危害大key的識別方法大key問題的解決方案數據結構優化與拆分壓縮與序列化優化預防與監控機制 什么是大key問題 大Key問題是指在Redis等內存數據庫中&#xff0c;某個Key對應的value數據結構過大&#xff0c;通常是指單個Key的大小超過10KB甚至達到…

C語言_數據結構總結6:鏈式棧

純c語言代碼&#xff0c;不涉及C 順序棧的實現&#xff0c;歡迎查看這篇文章&#xff1a;C語言_數據結構總結5&#xff1a;順序棧-CSDN博客 0. 結構單元 #include<stdio.h> #include<stdlib.h> typedef int ElemType; typedef struct Linknode { ElemType…

新品速遞 | 多通道可編程衰減器+矩陣系統,如何破解復雜通信測試難題?

在無線通信技術快速迭代的今天&#xff0c;多通道可編程數字射頻衰減器和衰減矩陣已成為測試領域不可或缺的核心工具。它們憑借高精度、靈活配置和強大的多通道協同能力&#xff0c;為5G、物聯網、衛星通信等前沿技術的研發與驗證提供了關鍵支持。從基站性能測試到終端設備校準…