选择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