聊聊GPIO 工作模式

嵌入式開發中,GPIO(General-Purpose Input/Output)是最基礎也最常用的功能模塊之一。你可以把它想象成微控制器伸出來的無數根“手腳”:既可以用它輸出信號去點亮LED、驅動外設,也可以用它輸入信號來檢測按鍵、讀取傳感器狀態。

輸出模式-主動出擊

1)推挽輸出 (Push-Pull Output)

      VDD(3.3V)│├───[PMOS]───┐│            ││            ├───● GPIO引腳│            │└───[NMOS]───┘│GND(0V)

工作原理:

  • 輸出高電平(1):PMOS打開,NMOS關閉 → 引腳接電源VDD(3.3V)
  • 輸出低電平(0):NMOS打開,PMOS關閉 → 引腳接地GND(0V)

使用場景:控制LED燈、數字信號輸出

2)開漏輸出 (Open-Drain Output)

       VDD(內部無連接!)││X ← [PMOS被拆除]│└───[NMOS]───● GPIO引腳│GND

工作原理

  • 輸出低電平:NMOS打開 → 接地
  • 輸出高電平:NMOS關閉 → 懸空(高阻態)→ 必須外接上拉電阻到VDD才能輸出高電平

使用場景:I2C/SMBus 總線 (多設備共享線路)、驅動高壓設備 (外接上拉到 5V/12V)、多主機通信

輸入模式-豎起耳朵聽

1)浮空輸入 (Floating Input)

       VDD││X ← 無內部上拉│
GPIO引腳 ┼───● 輸入檢測電路│X ← 無內部下拉│GND
  • 引腳完全斷開內部電阻
  • 電平狀態完全由外部電路決定

必須使用場景:ADC 模擬信號采樣

2)上拉/下拉輸入 (Pull-up/Pull-down Input)

上拉輸入結構:VDD││R(≈40kΩ)← 內部上拉電阻│
GPIO引腳 ┼───● 輸入檢測電路│X│GND
下拉輸入結構:VDD││X│
GPIO引腳 ┼───● 輸入檢測電路│R(≈40kΩ)← 內部下拉電阻│GND

工作原理

  • 上拉輸入:無外部信號時默認高電平(3.3V)
  • 下拉輸入:無外部信號時默認低電平(0V)

按鍵檢測:按鍵接地型電路、按鍵接VCC型電路

注意

  1. 開漏輸出必須外接上拉電阻:阻值依總線速度和功耗選擇 (常用 4.7KΩ)
  2. 推挽輸出禁止并聯:會導致 VDD-GND 短路損壞MOS管
  3. 輸入電平容限:
    1. 5V容忍引腳:可承受 5V 輸入
    2. 非容忍引腳:輸入電壓 ≤ VDD+0.3V
  4. 模式切換:讀輸入前需切換為輸入模式(尤其輸出轉輸入時)
  5. 靜電防護:未使用引腳設為下拉/推挽輸出低電平

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

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

相關文章

DM9000AE+STM32H7在rt-thread中的使用

概述 記錄下DM9000AE在rt-thread上的使用 FMC的配置 rt-thread的網絡設備驅動注冊 硬件連接 16bit總線 掛在FMC_A0 地址0x6000_0000 FMC的配置 FMC是STM32H7的一個外設,通過FMC把DM9000當做一個SRAM來訪問,只需要配置好FCM的時序就可以了。 DM9000…

TiDB 字符串行轉列與 JSON 數據查詢優化知識筆記

一、長字符串行轉列方案 JSON_TABLE 方案(TiDB 5.0 推薦) 通過將逗號分隔字符串轉為 JSON 數組后展開為行: sql SET str ‘a,b,c,d’; SELECT jt.val, jt.pos FROM JSON_TABLE( CONCAT(‘[’, REPLACE(str, ‘,’, ‘“,”’), ‘"]’…

1 Studying《Performance Analysis and Tuning on Modern CPUs》7-11

目錄 Part2. Source Code Tuning For CPU 數據驅動優化 7 CPU Front-End Optimizations 7.1 Machine code layout //機器碼布局 7.2 Basic Block 7.3 Basic block placement 7.4 Basic block alignment 7.5 Function splitting //函數拆分 7.6 Function groupin…

WinUI3入門6:子線程處理UI 窗口加載后執行 獲取和設置控件尺寸 自動生成事件代碼框架

初級代碼游戲的專欄介紹與文章目錄-CSDN博客 我的github:codetoys,所有代碼都將會位于ctfc庫中。已經放入庫中我會指出在庫中的位置。 這些代碼大部分以Linux為目標但部分代碼是純C的,可以在任何平臺上使用。 源碼指引:github源…

中國招聘智能化白皮書:從 “人撐不住“ 到 “AI 破局“ 的底層邏輯革命——AI得賢招聘官第六代AI面試官

一場面試,牽動一家公司的人力系統。 當簡歷數量以千計堆疊、當HR通宵挑燈刷篩選、當面試質量與效率陷入兩難,招聘不再只是流程問題,而成了“組織生存”的關鍵變量。 問題是:靠人,已經撐不住了。 企業招聘正步入前所…

防爆型激光測距傳感器:危險環境中的安全守護者

在石油化工、煤礦開采、核電站等高危工業場景中,爆炸性氣體與粉塵的存在讓傳統測量設備望而卻步。而防爆型激光測距傳感器的出現,猶如為這些領域注入了一劑“安全強心針”,以毫米級精度與防爆雙重保障,重新定義了工業測量的安全邊…

【AI編程】PC的一個提示詞,生成網站首頁,模型gpt4.1 、deepseekv3和claude3.7對比,你更喜歡哪個?

AI提示詞: 角色 你是一位資深的前端工程師、設計師和插畫師 設計風格 優雅的極簡主義美學與功能的完美平衡; 清新柔和的漸變配色與品牌色系渾然一體; 恰到好處的留白設計; 輕盈通透的沉浸式體驗; 信息層級通過微妙的陰影過渡與模塊化卡片布局清晰呈現; 按鈕添加…

跟著AI學習C# Day12

&#x1f4c5; Day 12&#xff1a;LINQ&#xff08;Language Integrated Query&#xff09;基礎 ? 目標&#xff1a; 理解 LINQ 的基本概念和作用&#xff1b;掌握使用 LINQ 查詢集合&#xff08;如 List<T>、Array&#xff09;&#xff1b;學會使用常用 LINQ 方法&am…

ubuntu網絡管理五花八門netplan 、NetworkManager、systemd、networking是什么關系

文章目錄 **1. Netplan&#xff08;網絡配置抽象層&#xff09;****2. NetworkManager&#xff08;動態網絡管理&#xff09;****3. systemd-networkd&#xff08;輕量級網絡管理&#xff09;****4. networking&#xff08;傳統的 ifupdown&#xff09;****5. 它們之間的關系**…

Python爬蟲實戰:研究Twisted框架相關技術

1. 引言 1.1 研究背景與意義 隨著互聯網信息的爆炸式增長,網絡爬蟲作為一種高效獲取和收集網絡信息的技術手段,在搜索引擎優化、市場調研、數據挖掘等領域有著廣泛的應用。傳統的同步爬蟲在面對大量 URL 請求時,由于 I/O 操作的阻塞特性,效率低下,難以滿足實際應用需求。…

內網運行控制四百來個海康威視硬件物聯網定員管控軟件(華為平板電腦版)

內網運行控制四百來個海康威視硬件物聯網定員管控軟件&#xff08;華為平板電腦版&#xff09; 從去年12月至今&#xff0c;自研一套在內網中的華為平板電腦上運行&#xff0c;控制四百來個海康威視硬件的物聯網定員管控軟件&#xff0c;開始上線投入運行。 運行環境為華為平板…

C++ 面向對象特性詳解:繼承機制

&#x1f680; C 面向對象特性詳解&#xff1a;繼承機制全解析——代碼復用與擴展的核心&#xff08;含實戰陷阱&#xff09; &#x1f4c5; 更新時間&#xff1a;2025年6月19日 &#x1f3f7;? 標簽&#xff1a;C | 繼承 | OOP | 面向對象 | 代碼復用 | C基礎 文章目錄 &…

學習日記-day33-6.19

知識點&#xff1a; 1.Spring課程概述 知識點 核心內容 重點 Spring框架概述 輕量級容器框架&#xff0c;封裝復雜邏輯&#xff0c;需理解IOC、AOP等核心機制 容器框架 vs 普通框架、封裝帶來的理解門檻 學習難點 動態代理、反射、注解、IO操作、XML解析、容器&#xf…

網絡編程中操作系統連接隊列管理:Linux TCP隊列深度解析

在現代網絡編程中&#xff0c;操作系統內核扮演著至關重要的角色&#xff0c;負責管理網絡通信的復雜細節&#xff0c;從而為應用程序提供抽象接口。對于服務器應用程序而言&#xff0c;高效處理大量傳入連接請求是確保性能和可靠性的核心。操作系統通過維護專門的隊列機制來管…

StableDiffusion實戰-手機壁紙制作 第一篇:從零基礎到生成藝術品的第一步!

大家好!歡迎來到《StableDiffusion實戰-手機壁紙制作》系列的第一篇! 在這一篇文章里,我們將一起探索如何用StableDiffusion(SD)這款強大的工具,快速制作出炫酷的手機壁紙。 如果你對生成藝術、AI繪圖感興趣,那你一定不能錯過! 你能做什么?你將做什么! 在之前的系…

運維——14.PowerShell 與Linux 、 macOS通用的命令

PowerShell 最初是 Windows 平臺的&#xff0c;但現在已經有了 PowerShell Core&#xff0c;它是跨平臺的&#xff0c;支持 Linux 和 macOS。在 PowerShell Core 中有一些Linux 和 macOS通用的命令。理清楚這些有助于學習多系統命令。 在 Linux/macOS 上使用 PowerShell 完成文…

C#的泛型和匿名類型

一、C#的泛型簡介 泛型是一種允許你延遲編寫類或方法中的數據類型規范&#xff0c;直到你在實際使用時才替換為具體的數據類型【簡單的說&#xff1a;泛型就是允許我們編寫能夠適用于任何數據類型的代碼&#xff0c;而無需為每種特定類型重寫相同的代碼】(T是類型參數&#xff…

日語面試ai助手推薦:高效備考并應對日語面試難題

在準備日語面試的路上&#xff0c;你是否時常感到力不從心&#xff1f;每到模擬面試環節&#xff0c;總怕自己答非所問、用語不地道&#xff0c;或是緊張到腦子一片空白。查找資料時&#xff0c;面對海量的日語問答、面試范本和專業術語&#xff0c;常常分不清輕重緩急&#xf…

【63 Pandas+Pyecharts | 泡泡瑪特微博熱搜評論數據分析可視化】

文章目錄 &#x1f3f3;??&#x1f308; 1. 導入模塊&#x1f3f3;??&#x1f308; 2. Pandas數據處理2.1 讀取數據2.2 數據信息2.3 數據去重2.4 數據去空2.5 時間處理2.6 性別處理2.7 評論內容處理 &#x1f3f3;??&#x1f308; 3. Pyecharts數據可視化3.1 用戶評論IP分…

python-最長無重復子數組

最長無重復子數組 描述代碼實現 描述 給定一個長度為n的數組arr&#xff0c;返回arr的最長無重復元素子數組的長度&#xff0c;無重復指的是所有數字都不相同。 子數組是連續的&#xff0c;比如[1,3,5,7,9]的子數組有[1,3]&#xff0c;[3,5,7]等等&#xff0c;但是[1,3,7]不是…