免费精品久久天干天干,国产成人av在线综合,国产精品一区二区三乱码,国产福利视频在线观看高清

首頁 > 新聞動(dòng)態(tài) > 技術(shù)資訊 >
技術(shù)資訊

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

來 源:  時(shí) 間:2025-11-18

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

 

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

協(xié)議 全稱 線數(shù) 通信方式 速率 應(yīng)用場景 特點(diǎn)
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è)備,但速率低,總線長時(shí)穩(wěn)定性差
I2S Inter-IC Sound 3\~4根線(SD, WS, SCK, MCLK 可選) 同步串行(專用于音頻) 常見 44.1kHz、48kHz(音頻采樣率) 音頻數(shù)據(jù)傳輸(DAC、Codec、耳機(jī)) 專為音頻設(shè)計(jì),不能傳通用數(shù)據(jù)
UART Universal Asynchronous Receiver/Transmitter 2根線(TX, RX) 異步、點(diǎn)對點(diǎn) 常見 9600\~115200 bps,可達(dá) Mbps 調(diào)試串口、GPS、藍(lán)牙模塊 硬件簡單,廣泛使用,但速率低,不支持多機(jī)總線

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

1.SPI

  • 點(diǎn)對點(diǎn)的速度王者,主從明確。
  • 常用于高速傳感器、Flash 存儲(chǔ)器、LCD 屏幕。
  • 缺點(diǎn):需要一根片選線控制每個(gè)從設(shè)備,多設(shè)備布線復(fù)雜。

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

  1. uint8_ttxData=0xA5;
  2. HAL_SPI_Transmit(&hspi1,&txData,1,HAL_MAX_DELAY);

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

  1. uint8_trxData;
  2. HAL_SPI_Receive(&hspi2,&rxData,1,HAL_MAX_DELAY);

2.I2C

  • 只需兩根線,就能掛多個(gè)設(shè)備,協(xié)議層自帶地址機(jī)制。
  • 常用于低速傳感器、EEPROM、實(shí)時(shí)時(shí)鐘(RTC)。
  • 缺點(diǎn):速率不高,總線電容大時(shí)穩(wěn)定性下降。

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

  1. uint8_treg=0x00;// 溫度寄存器地址
  2. uint8_ttemp;
  3. HAL_I2C_Master_Transmit(&hi2c1,SENSOR_ADDR,®,1,HAL_MAX_DELAY);
  4. HAL_I2C_Master_Receive(&hi2c1,SENSOR_ADDR,&temp,1,HAL_MAX_DELAY);

3.I2S

  • 名字很像 I2C,但完全不同,這是音頻傳輸專用協(xié)議。
  • 常見于音頻 Codec、功放、耳機(jī) DAC。
  • 優(yōu)點(diǎn):數(shù)據(jù)幀結(jié)構(gòu)天然適配音頻采樣率。
  • 缺點(diǎn):不能傳普通數(shù)據(jù),只能用于音頻傳輸。

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

  1. uint16_taudioData[256];
  2. HAL_I2S_Transmit(&hi2s2,audioData,256,HAL_MAX_DELAY);

4.UART

  • 最老牌串口,幾乎所有 MCU 都支持。
  • 常見于調(diào)試口、藍(lán)牙模塊、GPS 模塊。
  • 優(yōu)點(diǎn):實(shí)現(xiàn)簡單,應(yīng)用廣泛。
  • 缺點(diǎn):不支持掛多設(shè)備,速率有限。

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

  1. charmsg[]="Hello UART!";
  2. HAL_UART_Transmit(&huart1,(uint8_t*)msg,strlen(msg),HAL_MAX_DELAY);

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

  1. uint8_trxBuffer[20];
  2. HAL_UART_Receive(&huart1,rxBuffer,20,HAL_MAX_DELAY);

上一篇:優(yōu)化放大器電路中的輸入和輸出瞬態(tài)穩(wěn)定時(shí)間
下一篇:DC/DC 電源管理的6種核心模式區(qū)別

公司簡介,關(guān)于我們 佰泰盛世產(chǎn)品展示 聯(lián)系佰泰盛世
點(diǎn)擊關(guān)閉

  • 銷售 馬生:
    銷售 陸生:

    掃碼聯(lián)系微信

    服務(wù)熱線:

    0755-82717797