91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

SPI、I2C、I2S、UART:通信協(xié)議解釋

倚欄清風(fēng)L ? 來源:倚欄清風(fēng)L ? 作者:倚欄清風(fēng)L ? 2025-11-18 10:53 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

嵌入式開發(fā)中,最常用的幾種通信接口無非就是SPI、I2C、I2S、UART。名字看起來差不多,但應(yīng)用場景和特性卻大不相同。為什么都叫串行通信,結(jié)構(gòu)卻不一樣?為什么有的能傳音頻,有的不能?本文一次梳理清楚。

一、通信協(xié)議快速對照表

協(xié)議 全稱 線數(shù) 通信方式 速率 應(yīng)用場景 特點
SPI Serial Peripheral Interface 4根常用線(MOSI, MISO, SCLK, CS) 全雙工、主從 高速(可達(dá)幾十 MHz) Flash、傳感器、顯示屏 硬件簡單、速率高,但線多,擴(kuò)展性差
I2C Inter-Integrated Circuit 2根線(SDA, SCL) 半雙工、多主多從 100 kbps ~ 3.4 Mbps EEPROM、傳感器、RTC 線少,可掛多設(shè)備,但速率低,總線長時穩(wěn)定性差
I2S Inter-IC Sound 3~4根線(SD, WS, SCK, MCLK 可選) 同步串行(專用于音頻) 常見 44.1kHz、48kHz(音頻采樣率) 音頻數(shù)據(jù)傳輸(DAC、Codec、耳機(jī)) 專為音頻設(shè)計,不能傳通用數(shù)據(jù)
UART Universal Asynchronous Receiver/Transmitter 2根線(TX, RX) 異步、點對點 常見 9600~115200 bps,可達(dá) Mbps 調(diào)試串口、GPS、藍(lán)牙模塊 硬件簡單,廣泛使用,但速率低,不支持多機(jī)總線

二、協(xié)議特點解析與代碼示例

1.SPI

點對點的速度王者,主從明確。

常用于高速傳感器、Flash 存儲器、LCD 屏幕。

缺點:需要一根片選線控制每個從設(shè)備,多設(shè)備布線復(fù)雜。

示例:STM32SPI 主機(jī)發(fā)送數(shù)據(jù):

uint8_ttxData=0xA5;

HAL_SPI_Transmit(&hspi1,&txData,1,HAL_MAX_DELAY);

從設(shè)備接收數(shù)據(jù):

uint8_trxData;

HAL_SPI_Receive(&hspi2,&rxData,1,HAL_MAX_DELAY);

2.I2C

只需兩根線,就能掛多個設(shè)備,協(xié)議層自帶地址機(jī)制。

常用于低速傳感器、EEPROM、實時時鐘(RTC)。

缺點:速率不高,總線電容大時穩(wěn)定性下降。

示例:STM32 I2C 讀取溫度傳感器數(shù)據(jù):

uint8_treg=0x00;// 溫度寄存器地址

uint8_ttemp;

HAL_I2C_Master_Transmit(&hi2c1,SENSOR_ADDR,?,1,HAL_MAX_DELAY);

HAL_I2C_Master_Receive(&hi2c1,SENSOR_ADDR,&temp,1,HAL_MAX_DELAY);

3.I2S

名字很像 I2C,但完全不同,這是音頻傳輸專用協(xié)議。

常見于音頻 Codec、功放、耳機(jī) DAC。

優(yōu)點:數(shù)據(jù)幀結(jié)構(gòu)天然適配音頻采樣率。

缺點:不能傳普通數(shù)據(jù),只能用于音頻傳輸。

示例:STM32 I2S 發(fā)送音頻數(shù)據(jù):

uint16_taudioData[256];

HAL_I2S_Transmit(&hi2s2,audioData,256,HAL_MAX_DELAY);

4.UART

最老牌串口,幾乎所有MCU都支持。

常見于調(diào)試口、藍(lán)牙模塊、GPS 模塊。

優(yōu)點:實現(xiàn)簡單,應(yīng)用廣泛。

缺點:不支持掛多設(shè)備,速率有限。

示例:STM32 UART 發(fā)送字符串:

charmsg[]="Hello UART!";

HAL_UART_Transmit(&huart1,(uint8_t*)msg,strlen(msg),HAL_MAX_DELAY);

接收數(shù)據(jù):

uint8_trxBuffer[20];

HAL_UART_Receive(&huart1,rxBuffer,20,HAL_MAX_DELAY);

審核編輯 黃宇

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

    關(guān)注

    28

    文章

    1092

    瀏覽量

    42180
  • SPI
    SPI
    +關(guān)注

    關(guān)注

    17

    文章

    1885

    瀏覽量

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

    關(guān)注

    28

    文章

    1556

    瀏覽量

    131261
  • uart
    +關(guān)注

    關(guān)注

    22

    文章

    1314

    瀏覽量

    106674
  • I2S
    I2S
    +關(guān)注

    關(guān)注

    1

    文章

    80

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    I2C 為什么只要兩根線就能搞定通信

    到目前為止,我們已經(jīng)討論了SPI通信UART通信的基礎(chǔ)知識,現(xiàn)在讓我們討論本系列的最后一個協(xié)議,即集成電路間
    的頭像 發(fā)表于 01-04 09:14 ?1662次閱讀
    <b class='flag-5'>I2C</b> 為什么只要兩根線就能搞定<b class='flag-5'>通信</b>?

    基于FPGA的I2C控制模塊設(shè)計

    I2C_WRITE_WDATA.v模塊實現(xiàn)I2C寫時序,I2C_Controller (I2C控制器)例化了I2C_WRITE_WDATA.
    的頭像 發(fā)表于 12-26 09:48 ?5009次閱讀
    基于FPGA的<b class='flag-5'>I2C</b>控制模塊設(shè)計

    基于FPGA的I2C通信協(xié)議設(shè)計

    I2C(Inter-Integrated Circuit)是一種由飛利浦半導(dǎo)體(現(xiàn)為恩智浦半導(dǎo)體)在1980年代初開發(fā)的同步、串行、半雙工的總線型通信協(xié)議。主要用于近距離(同一塊印刷電路板(PCB
    的頭像 發(fā)表于 12-26 09:44 ?6146次閱讀
    基于FPGA的<b class='flag-5'>I2C</b><b class='flag-5'>通信協(xié)議</b>設(shè)計

    I2C的缺點介紹

    上升時間變慢和潛在的信號衰減。對于長距離通信,其他協(xié)議,如 UART(通用異步接收器/發(fā)送器)或 SPI(串行外設(shè)接口)可能更合適。 速度限制: 雖然
    發(fā)表于 11-27 06:10

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

    在嵌入式開發(fā)中,設(shè)備之間的通信是繞不開的話題。常見的三種總線接口——UART、SPII2C——各有優(yōu)缺點。不同項目需求決定了選擇哪一種協(xié)議
    的頭像 發(fā)表于 11-24 19:04 ?1180次閱讀
    <b class='flag-5'>UART</b>、<b class='flag-5'>SPI</b>、<b class='flag-5'>I2C</b> 實戰(zhàn)對比:哪個更適合你的項目?

    SPI、I2CUART三種串行總線的區(qū)別與對比

    Asynchronous Receiver Transmitter:通用異步收發(fā)器) 2通信方式 SPIUART可以實現(xiàn)全雙工,但I2C
    發(fā)表于 11-20 07:19

    SPI、I2CI2S、UART通信協(xié)議對比表

    在嵌入式開發(fā)中,最常用的幾種通信接口無非就是SPII2CI2SUART。名字看起來差不多,但應(yīng)用場景和特性卻大不相同。很多初學(xué)者容易混
    的頭像 發(fā)表于 11-17 10:53 ?1752次閱讀
    <b class='flag-5'>SPI</b>、<b class='flag-5'>I2C</b>、<b class='flag-5'>I2S</b>、<b class='flag-5'>UART</b>:<b class='flag-5'>通信協(xié)議</b>對比表

    ESP32 I2S音頻總線學(xué)習(xí)筆記(二):I2S讀取INMP441音頻數(shù)據(jù)

    在這上一篇文章中,我們介紹了ESP32 I2S音頻總線的相關(guān)知識,簡要了解了什么是I2S總線、它的通信格式,以及相關(guān)的底層API函數(shù),這篇文章將介紹一個小案例——ESP32驅(qū)動INMP441讀取音頻
    的頭像 發(fā)表于 10-23 19:55 ?4370次閱讀
    ESP32 <b class='flag-5'>I2S</b>音頻總線學(xué)習(xí)筆記(二):<b class='flag-5'>I2S</b>讀取INMP441音頻數(shù)據(jù)

    串行通信相關(guān)的基礎(chǔ)知識

    串行通信是電子設(shè)備中數(shù)據(jù)交換的基石。最常見的串行通信協(xié)議UART,SPI,I2C等。
    的頭像 發(fā)表于 10-15 10:53 ?1993次閱讀
    串行<b class='flag-5'>通信</b>相關(guān)的基礎(chǔ)知識

    【干貨】一文帶你徹底搞懂I2S協(xié)議:從基礎(chǔ)信號到主從模式的深度解析

    在電子開發(fā)領(lǐng)域,數(shù)字音頻的處理與傳輸是音頻類項目開發(fā)的核心環(huán)節(jié)。I2S(Inter-ICSound)協(xié)議作為業(yè)界通用的數(shù)字音頻串行接口標(biāo)準(zhǔn),憑借簡潔穩(wěn)定的設(shè)計,為音頻數(shù)據(jù)在集成電路之間的高效傳輸提供
    的頭像 發(fā)表于 10-09 19:35 ?2076次閱讀
    【干貨】一文帶你徹底搞懂<b class='flag-5'>I2S</b><b class='flag-5'>協(xié)議</b>:從基礎(chǔ)信號到主從模式的深度解析

    深入剖析I2C協(xié)議

    I2C是由Philips開發(fā)的簡單的雙向兩線總線,在深入淺出理解SPI協(xié)議中,我們區(qū)分了單工,半雙工,全雙工協(xié)議數(shù)據(jù)流向的區(qū)別,根據(jù)特征,I2C
    的頭像 發(fā)表于 08-21 15:10 ?3684次閱讀
    深入剖析<b class='flag-5'>I2C</b><b class='flag-5'>協(xié)議</b>

    第十八章 I2C通信測試

    本章介紹了I2C協(xié)議,其物理層用SDA和SCL雙線,支持多設(shè)備:協(xié)議層含起始/停止信號、應(yīng)答機(jī)制等。還講解W55MH32的I2C外設(shè)及初始化,并進(jìn)行了
    的頭像 發(fā)表于 06-19 17:07 ?1320次閱讀
    第十八章 <b class='flag-5'>I2C</b><b class='flag-5'>通信</b>測試

    嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-I2C設(shè)備驅(qū)動之Linux下的I2C驅(qū)動簡介

    在Linux下,I2C(Inter-Integrated Circuit)驅(qū)動是用于支持I2C總線協(xié)議的驅(qū)動程序。I2C是一種串行通信協(xié)議
    發(fā)表于 04-15 10:39

    飛凌嵌入式ElfBoard ELF 1板卡-I2C設(shè)備驅(qū)動之Linux下的I2C驅(qū)動簡介

    在Linux下,I2C(Inter-Integrated Circuit)驅(qū)動是用于支持I2C總線協(xié)議的驅(qū)動程序。I2C是一種串行通信協(xié)議,
    發(fā)表于 04-15 10:19

    I2C總線復(fù)用

    帝晶智慧屏I2C總線復(fù)用
    的頭像 發(fā)表于 03-11 17:20 ?2108次閱讀