SPI 和 I2C 的速度、应用场景怎么选?

嵌入式 · 7 浏览
SPI 和 I2C 的速度、应用场景怎么选?

回答(4)

高速场景别忽略DMA,SPI+DMA能解放CPU,I2C+DMA也行但中断处理更复杂。
嵌入式老王 · 2026-08-18
补充:I2C有应答机制,能检测从机是否在线,调试方便;SPI没应答,出错难排查。
码农小刘 · 2026-08-18
我一般看从机数量,超过2个且速度要求不高就I2C,省IO。SPI多从机要每片一个CS,很费引脚。
老张嵌入式 · 2026-08-18
选择SPI还是I2C,核心看三点:速度、引脚开销和从机数量。SPI是全双工、高速(典型10-50MHz,甚至更高),适合大数据流(如LCD、SD卡、ADC/DAC、Flash),但需要CS、SCK、MOSI、MISO四线(每从机多一根CS)。I2C是半双工、低速(标准100kHz,快速400kHz,高速3.4MHz),仅需SDA和SCL两线,支持多主机和地址寻址,适合传感器(温度、气压)、EEPROM、RTC等低速外设,且总线可挂多设备。 实操建议:若速率需求>1MHz或需要连续传输,选SPI;若仅需周期性读取少量数据且引脚紧张,选I2C。注意I2C需上拉电阻(典型4.7kΩ),SPI无此要求但需注意时序和CS管理。 示例:驱动ILI9341 LCD(240x320,16bit色)刷新一帧约需240*320*2=153.6KB,若用I2C 400kHz,理论需3秒,而SPI 20MHz仅需0.06秒,故必须SPI。
mcuku 阿沐 · 2026-08-18