伦伦影院久久影视,天天操天天干天天射,ririsao久久精品一区 ,一本大道香蕉大久在红桃,999久久久免费精品国产色夜,色悠悠久久综合88,亚洲国产精品久久无套麻豆,亚洲香蕉毛片久久网站,一本一道久久综合狠狠老

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

GPIO、PWM、ADC,到底怎么區分?

信盈達 ? 2025-11-14 10:28 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

嵌入式開發中,我們經常聽到 GPIO、PWM、ADC 這些術語。初學者常常搞不清楚它們的區別和用途:“它們不是都是和電平有關嗎?為什么還要分這么多種?”今天,我們就把這些基礎概念講清楚,讓你在動手開發時不再迷糊。


GPIO

最基礎的數字接口


GPIO(General Purpose Input/Output),通用輸入輸出,是 MCU 上最常見的引腳類型。GPIO 的核心功能就是讀取或者輸出數字信號:高電平或者低電平。


輸入模式:GPIO 可以用來讀取開關狀態、傳感器輸出或其他數字信號。


輸出模式:GPIO 可以控制 LED 燈的亮滅、繼電器開關,甚至驅動一些簡單的外設。


GPIO 的特點是簡單直接,只處理“開或關”兩種狀態。要注意的是,GPIO 并不適合直接輸出模擬信號,也無法實現平滑的亮度或速度控制。


PWM

數字信號模擬模擬量


PWM(Pulse Width Modulation,脈寬調制)是一種利用數字信號模擬連續輸出的方法。簡單來說,它通過快速切換高低電平,調整高電平在整個周期中的占比,從而控制輸出平均電壓。


占空比:PWM 的核心概念是占空比(Duty Cycle),即高電平持續時間占整個周期的比例。占空比越大,輸出平均電壓越高。


應用場景:控制電機轉速、LED 亮度調節、舵機位置控制等。


舉例來說,你想讓 LED 燈亮一半亮度,用 GPIO 是不可能的,但用 PWM 就可以通過調整占空比,實現亮度漸變。

ADC

把模擬信號變成數字信號


ADC(Analog-to-Digital Converter,模數轉換器)**是 MCU 用來讀取模擬信號的接口。很多傳感器輸出的不是簡單的高低電平,而是連續變化的電壓,例如溫度、光照、聲音等。


原理:ADC 會把模擬電壓轉換成 MCU 可以處理的數字值。比如,輸入 03.3V 的電壓,經過 12 位 ADC 轉換,可能得到 04095 的數字。


應用場景:讀取溫度傳感器、光敏電阻壓力傳感器等模擬信號。


ADC 的特點是只能讀取模擬信號,輸出的是數字值,便于程序處理。



04

GPIO、PWM、ADC 的區別與聯系

信號類型

GPIO:數字信號,高/低電平。

PWM:數字信號模擬模擬量,通過占空比控制平均電壓。

DC:輸入模擬信號,轉換成數字數據。


應用目的

GPIO:簡單控制或讀取開關狀態。

PWM:控制模擬效果,例如亮度、速度。

ADC:采集外部傳感器的連續信號,用于計算或決策。


控制方向

GPIO 和 PWM:通常是 MCU 向外控制。

ADC:通常是 MCU 從外部采集數據。



05

開發者常見誤區


GPIO 可以模擬亮度?

很多人一開始會嘗試用 GPIO 控制 LED 亮度,但 GPIO 只有高低兩種狀態,想要亮度漸變,必須用 PWM。


PWM 是模擬接口?

雖然 PWM 可以模擬輸出模擬電壓,但本質上還是數字信號,只是利用占空比讓輸出平均值變化。


ADC 直接控制設備?

ADC 只能讀取信號,不能直接控制外設。要控制設備,需要通過程序處理 ADC 值,再用 GPIO 或 PWM 輸出。


06

實踐中的選擇指南


控制開關或簡單狀態:GPIO 足夠。

調節亮度或速度:PWM 最合適。

讀取傳感器信號:ADC 必不可少。


此外,很多嵌入式 MCU 都支持 GPIO 與 PWM、ADC 復用,一條引腳可能同時支持多種功能。在配置前,一定要查手冊,明確引腳功能和寄存器設置。理解 GPIO、PWM、ADC 的區別和聯系,是嵌入式開發的入門基礎。


掌握它們,你就能更準確地控制外設和采集數據,為后續開發打下堅實基礎。無論是控制 LED 燈、驅動舵機,還是讀取傳感器數據,選擇合適的接口都能讓你的程序更簡潔、可靠。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • PWM
    PWM
    +關注

    關注

    116

    文章

    5877

    瀏覽量

    226073
  • adc
    adc
    +關注

    關注

    100

    文章

    7565

    瀏覽量

    556478
  • GPIO
    +關注

    關注

    16

    文章

    1330

    瀏覽量

    56304
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    請問如何區分觸發STM32外部中斷的GPIO引腳?

    如何區分觸發STM32 外部中斷的GPIO引腳?
    發表于 04-01 07:07

    ADC配置為什么不要像PWM模塊設置一樣,還要指定那個pwm模塊的那一路pwm信號呢?

    在配置ADC采樣時,設置相應的GPIOADC采樣 GPIOPinTypeADC(GPIO_PORTE_BASE, GPIO_PIN_1|
    發表于 08-27 09:51

    TWEN-ASR ONE 語音識別系列教程(2)— GPIO、ADC、PWM的使用

    TWEN-ASR ONE 語音識別系列教程(2)— GPIO、ADCPWM的使用提示:作者使用 TWEN-ASR ONE V1.0開發板進行開發學習。文章目錄前言一、TWEN-ASR ONE
    發表于 06-18 19:47

    PWM到底是什么?怎樣去使用呢

    提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔文章目錄前言一、PWM到底是什么二、使用步驟1.引入庫2.讀入數據總結前言此篇文章以一個通俗的方式帶你了解PWM信號,寫得非常詳細
    發表于 01-13 08:22

    使用ADC來改變定時器1PWM的占空比

    1. 簡介使用定時器1 在PB3引腳上輸出頻率100K的PWM波,然后使用ADC0 的通道1采集輸入的電壓型號來改變定時器1PWM的占空比。2. 時鐘分析Cortex-M4時鐘最高200MAPB2
    發表于 12-14 16:26

    ESP32-Wroom上到底有多少個ADC使能引腳?

    谷歌搜索“Esp32 ADC 引腳數”會得到“ESP32 有 18 個 ADC 通道”。然而,數據表和引腳圖表明只有 16 個可用,GPIO9 保留用于 WIFI 使用。ESP32-Wroom 上
    發表于 04-12 08:20

    Nano100B如何初始化GPIO/Timer/ADC/PWM和SPI

    : NuTiny-EVB-Nano130-LQFP128 v1.0 此示例代碼將演示如何初始化 GPIO、 Timer、 ADCPWM 和 SPI 。 當系統停電時, 它會因 Timer 中斷而醒來 。 您可以在下列時間下
    發表于 08-23 06:57

    如何使用PWM觸發ADCPWM剎車功能來阻止PWM輸出

    應用程序:本文件描述如何使用 PWM 觸發 ADCPWM 剎車功能來阻止 PWM 輸出 。 BSP 版本:Mini51DE系列 BSP CMISIS V3.02.000 硬件
    發表于 08-23 07:31

    Nano130如何初始化GPIO、Timer、ADC、PWM和SPI

    : NuTiny-EVB-Nano130-LQFP128 v1.0 此示例代碼將演示如何初始化 GPIO、 Timer、 ADC、 PWM 和 SPI 。 當系統停電時, 它會因 Timer 中斷而醒來 。 您可以在下列時間下
    發表于 08-30 06:21

    ADC0808控制PWM輸出程序

    ADC0808如何控制PWM輸出呢?ADC0808控制PWM輸出的程序,一起來了解一下。
    發表于 11-22 09:33 ?8858次閱讀

    MPPT充電與PWM充電效率到底怎么樣

    本文檔的主要內容詳細介紹的是MPPT充電與PWM充電效率到底怎么樣。
    發表于 01-14 16:16 ?100次下載
    MPPT充電與<b class='flag-5'>PWM</b>充電效率<b class='flag-5'>到底</b>怎么樣

    PWM硬件間隔觸發ADC

    PWM硬件間隔觸發ADC(新型電源技術課程答案)-在各種應用場景中,比如電機,電源,變頻器等應用中,ADC的采樣點會有很嚴格的要求,如果采樣點選擇錯誤,會給整個控制系統造成嚴重后果,本文針對STM32Fxxx的
    發表于 08-04 18:00 ?59次下載
    <b class='flag-5'>PWM</b>硬件間隔觸發<b class='flag-5'>ADC</b>

    Part13--怎么區分I/O與GPIO

    對于剛進入嵌入式學習的小伙伴,是不是總會遇到 I/O和GPIO的說法,兩個到底都是什么呢?這里為你揭開I/O和GPIO的神秘面紗,快來學習一波。一句話總結, I/O是泛指所有類型的輸入輸出端口,包括單向的端口如邏輯門電路的輸入輸
    發表于 11-26 15:51 ?17次下載
    Part13--怎么<b class='flag-5'>區分</b>I/O與<b class='flag-5'>GPIO</b>

    定時器,pwm,gpio

    _Init(u16 arr,u16 psc);pwm部分初始化中的arr和psc2.ARR和PSC如何取值3.ARR,PSC的影響4.輸出比較模式5.指定輸出極性6.輸出比較狀態三、GPIO的輸入輸出總結 在上一周做小車時,我采用了STM32F103C8
    發表于 12-31 18:58 ?1次下載
    定時器,<b class='flag-5'>pwm</b>,<b class='flag-5'>gpio</b>

    共射極、共基極、共集電極電路到底怎么區分

      我們經常見到術語:共射極、共基極、共集電極電路,到底怎么區分呢?
    的頭像 發表于 03-17 15:00 ?2.8w次閱讀
    共射極、共基極、共集電極電路<b class='flag-5'>到底</b>怎么<b class='flag-5'>區分</b>