中文字幕大香视频蕉免费丨国产精无久久久久久久免费丨亚洲色大成成人网站久久丨网站黄在线丨把少妇弄高潮了www麻豆丨极品少妇xxxx精品少妇小说丨国产成人免费看一级大黄丨伊人激情丨狠狠插av丨久久综合九色欧美综合狠狠丨国产成人8x视频网站入口丨天堂av资源丨国产九一精品丨av网天堂丨久久久久久久久久久免费av丨免费看国产zzzwww色丨国产 日韩 欧美 制服丝袜丨日本黄色录相丨久久精品99久久久久久2456丨亚洲精品无码人妻无码丨黄色免费视频丨三级毛片国产三级毛片丨亚洲精品久久午夜麻豆丨亚洲网站免费观看丨日本三级全黄少妇三2020

歡迎訪問深圳市中小企業(yè)公共服務(wù)平臺電子信息窗口

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

2025-12-04 來源: 作者:深圳市佰泰盛世科技有限公司
1013

關(guān)鍵詞: SPI I2C I2S UART 通信協(xié)議

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

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

 

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

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

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

1.SPI

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

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

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

示例:STM32 SPI 主機發(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

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

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

  • 缺點:速率不高,總線電容大時穩(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、功放、耳機 DAC。

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

  • 缺點:不能傳普通數(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)點:實現(xiàn)簡單,應(yīng)用廣泛。

  • 缺點:不支持掛多設(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);

三、網(wǎng)址:www.baitaishengshi.com




相關(guān)文章