chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

UART、SPI、I2C 實戰(zhàn)對比:哪個更適合你的項目?

信盈達 ? 2025-11-24 19:04 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

嵌入式開發(fā)中,設(shè)備之間的通信是繞不開的話題。常見的三種總線接口——UART、SPI、I2C—— 各有優(yōu)缺點。不同項目需求決定了選擇哪一種協(xié)議最合適。本文結(jié)合實戰(zhàn)經(jīng)驗,逐項對比三者,并附帶實戰(zhàn)代碼,幫助你快速做出判斷。

一、UART(通用異步收發(fā)器

工作方式:點對點通信,使用 TX/RX 兩根數(shù)據(jù)線(加上 GND)。

優(yōu)點

  • 實現(xiàn)簡單,硬件資源少
  • 常用于調(diào)試、日志打印、模塊通信(如 GPS、藍牙模塊)
  • 波特率可調(diào),支持從幾百 bps 到幾 Mbps

缺點

  • 只能點對點,無法掛多個設(shè)備
  • 沒有統(tǒng)一的時鐘,容易受波特率誤差影響

常見應(yīng)用場景

  • 串口調(diào)試
  • 與 GSM、WiFi、GPS 模塊通信
  • 簡單傳感器數(shù)據(jù)讀取

UART 實戰(zhàn)代碼示例(STM32 HAL)

  1. // 初始化 UART,波特率 115200
  2. HAL_UART_Init(&huart1);
  3. // 發(fā)送字符串
  4. charmsg[]="Hello UART!\r\n";
  5. HAL_UART_Transmit(&huart1,(uint8_t*)msg,strlen(msg),HAL_MAX_DELAY);
  6. // 接收數(shù)據(jù)(阻塞模式)
  7. uint8_trx;
  8. HAL_UART_Receive(&huart1,&rx,1,1000);

二、SPI(串行外設(shè)接口

工作方式:主從模式,通常需要 4 根線(MOSI、MISO、SCLK、CS),多從機時可增加片選線。

優(yōu)點

  • 全雙工,速度快,常見速率可達 10 Mbps 以上
  • 協(xié)議簡單,延遲低
  • 可連接多個從設(shè)備(通過片選信號

缺點

  • 需要的 IO 口較多
  • 多從機設(shè)計時,布線復(fù)雜
  • 沒有標準化的幀結(jié)構(gòu),需要自定義協(xié)議

常見應(yīng)用場景

  • 連接 Flash、SD
  • LCD 顯示屏驅(qū)動
  • 高速傳感器數(shù)據(jù)采集

SPI 實戰(zhàn)代碼示例(讀取 Flash ID)

  1. uint8_ttx=0x9F;// Flash 讀 ID 指令
  2. uint8_trx[3];// 接收 ID 數(shù)據(jù)
  3. HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_RESET);// CS 低電平
  4. HAL_SPI_Transmit(&hspi1,&tx,1,HAL_MAX_DELAY);
  5. HAL_SPI_Receive(&hspi1,rx,3,HAL_MAX_DELAY);
  6. HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_SET);// CS 高電平

三、I2C(內(nèi)部集成電路總線)

工作方式:主從架構(gòu),僅用兩根線(SCL、SDA)即可掛載多個設(shè)備。

優(yōu)點

  • 協(xié)議標準化,設(shè)備尋址簡單(7 位或 10 位地址)
  • 占用引腳少,便于 PCB 設(shè)計
  • 硬件生態(tài)豐富,幾乎所有傳感器都支持

缺點

  • 通信速率有限(標準模式 100 kbps,高速模式 3.4 Mbps)
  • 總線電容和上拉電阻影響信號質(zhì)量
  • 仲裁和時鐘同步機制使得實現(xiàn)稍復(fù)雜

常見應(yīng)用場景

I2C 實戰(zhàn)代碼示例(讀取寄存器)

  1. uint8_treg=0x0F;// WHO_AM_I 寄存器
  2. uint8_tval;
  3. // 寫寄存器地址
  4. HAL_I2C_Master_Transmit(&hi2c1,DEVICE_ADDR<<1,®,1,HAL_MAX_DELAY);
  5. // 讀寄存器數(shù)據(jù)
  6. HAL_I2C_Master_Receive(&hi2c1,DEVICE_ADDR<<1,&val,1,HAL_MAX_DELAY);

四、三者對比表

特性UARTSPII2C
引腳數(shù)2≥42
通信模式點對點主從,多從機主從,多從機
速率kbps~Mbps高速,常達數(shù)十 Mbps100 kbps~3.4 Mbps
復(fù)雜度簡單中等,需要協(xié)議約定較復(fù)雜,標準協(xié)議
常見應(yīng)用調(diào)試、模塊通信Flash、顯示屏、ADC傳感器、配置類設(shè)備

五、如何選擇?

  • 調(diào)試/模塊通信:選 UART
  • 高速數(shù)據(jù)傳輸(屏幕、存儲器、ADC):選 SPI
  • 多傳感器、低速配置:選 I2C

經(jīng)驗法則:

  • MCU 引腳緊張 →I2C
  • 對速率要求高 →SPI
  • 僅單模塊通信 →UART

總結(jié)

UART、SPI、I2C 沒有絕對的好壞,只有是否適合你的項目:

  • UART:簡單直接,適合點對點通信
  • SPI:高速穩(wěn)定,但占用引腳較多
  • I2C:節(jié)省資源,適合掛載多個外設(shè)

掌握三者的差異與使用場景,就能在設(shè)計系統(tǒng)時更加靈活,避免返工,提高效率。

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

    關(guān)注

    17

    文章

    1876

    瀏覽量

    100515
  • I2C
    I2C
    +關(guān)注

    關(guān)注

    28

    文章

    1554

    瀏覽量

    130850
  • uart
    +關(guān)注

    關(guān)注

    22

    文章

    1308

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    SPI,UART,I2C區(qū)別與特點

    本內(nèi)容詳細介紹了SPI,UART,I2C區(qū)別與特點,SPI:高速同步串行口。3~4線接口,收發(fā)獨立、可同步進行,UART:通用異步串行口。按
    發(fā)表于 02-02 16:15 ?6903次閱讀

    MAX3107 SPI/I2C UART,提供128字FIF

    MAX3107 SPI/I2C UART,提供128字FIFO和內(nèi)部振蕩器 概述 The MAX3107 is an advanced universal asynchronous receiver-transmitter
    發(fā)表于 01-15 15:16 ?2209次閱讀
    MAX3107 <b class='flag-5'>SPI</b>/<b class='flag-5'>I2C</b> <b class='flag-5'>UART</b>,提供128字FIF

    SPII2C、UART串行總線協(xié)議

    串口通訊通信協(xié)議UART,以及常用外設(shè)通信協(xié)議 SPI、I2C的介紹與他們之間的區(qū)別
    發(fā)表于 11-30 11:28 ?96次下載

    SPI總線及I2C總線工作原理

    SPI總線及I2C總線工作原理,本內(nèi)容詳細介紹了SPI總線和I2C總線的工作原理和比較
    發(fā)表于 12-08 16:55 ?0次下載

    SPI、SCI、I2C、UART之間的異同

    詳細介紹了SPI、SCI、I2C、UART幾種通信方式的異同便于讀者整體了解通信的意義.
    發(fā)表于 12-15 14:32 ?0次下載

    SPII2C、UART三種串行總線協(xié)議的區(qū)別

    SPII2C、UART三種串行總線協(xié)議的區(qū)別
    發(fā)表于 07-17 17:23 ?0次下載

    spii2c總線協(xié)議的對比分析

    通信協(xié)議非常適合近距離低速芯片間通信。Philips(for I2C)和Motorola(for SPI) 出于不同背景和市場需求制定了這兩種標準通信協(xié)議。
    發(fā)表于 12-06 11:57 ?3458次閱讀

    多功能USB轉(zhuǎn)i2c/spi/uart適配器用戶手冊

    多功能USB轉(zhuǎn)i2c/spi/uart適配器用戶手冊
    發(fā)表于 01-22 14:28 ?11次下載

    UARTSPII2C接口的詳解解釋資料說明

    做單片機開發(fā)時UART,SPII2C都是我們最經(jīng)常使用到的硬件接口,我收集了相關(guān)的具體材料對這三種接口進行了詳細的解釋。
    發(fā)表于 05-15 18:09 ?7次下載
    <b class='flag-5'>UART</b>和<b class='flag-5'>SPI</b>及<b class='flag-5'>I2C</b>接口的詳解解釋資料說明

    一文搞懂UART、I2C、SPI協(xié)議

    UART、I2C、SPI都是常見的低速板級通信協(xié)議,目前主流的SoC都內(nèi)置了這些通訊協(xié)議的控制器,同樣,各種傳感器、Touch控制器、指紋模塊、藍牙模塊、WIFI模塊也都兼容這三種通信方式的一種或幾種。
    的頭像 發(fā)表于 03-26 09:29 ?3295次閱讀

    I2CSPI的區(qū)別是什么 速率對比

    I2CSPI 對比 ? 功能 I2C SPI 線數(shù) 2(SDA,SCL) 4(MOSI,M
    的頭像 發(fā)表于 07-27 10:55 ?5716次閱讀

    I2CSPIUART:如何布局這些通用總線

    如果您要為項目構(gòu)建開發(fā)板或使用通用MCU,則會發(fā)現(xiàn)許多用于通信其他活動組件的協(xié)議。USB和以太網(wǎng)之類的標準已內(nèi)置在大多數(shù)控制器中,用于與計算機外圍設(shè)備一起使用。盡管如此,仍使用I2C,SPI
    的頭像 發(fā)表于 11-08 17:33 ?2784次閱讀
    <b class='flag-5'>I2C</b>與<b class='flag-5'>SPI</b>與<b class='flag-5'>UART</b>:如何布局這些通用總線

    UARTSPI、I2C比較 串口通信介紹

    UARTSPI、I2C比較 I2C線更少,比UART、SPI更為強大,但是技術(shù)上也更加麻煩些,
    的頭像 發(fā)表于 11-09 18:06 ?2642次閱讀
    <b class='flag-5'>UART</b>、<b class='flag-5'>SPI</b>、<b class='flag-5'>I2C</b>比較 串口通信介紹

    藍牙串口通訊總線——I2C/SPI/UART

    嵌入式工程師在做串口通信調(diào)試工作的時候,會經(jīng)常用到I2C、SPI、UART這3條總線,I2C、SPI、U
    的頭像 發(fā)表于 01-22 09:41 ?3232次閱讀
    藍牙串口通訊總線——<b class='flag-5'>I2C</b>/<b class='flag-5'>SPI</b>/<b class='flag-5'>UART</b>

    總結(jié)usart、uart、i2cspi區(qū)別及相關(guān)知識

    USART、UART、I2CSPI是四種不同的串行通信協(xié)議,它們各自具有獨特的特點和應(yīng)用領(lǐng)域
    的頭像 發(fā)表于 04-10 09:47 ?3245次閱讀
    總結(jié)usart、<b class='flag-5'>uart</b>、<b class='flag-5'>i2c</b>、<b class='flag-5'>spi</b>區(qū)別及相關(guān)知識