(1)I2C是半双工,SPI是全双工。
(2)I2C支持多主多从模式,而SPI只能有一个主机。
(3)从GPIO占用上来看,I2C占用更少的GPIO,更节省资源。
(4)I2C有应答响应机制,数据可靠性更高,SPI没有应答机制。
(5)I2C速率不会太高,最高速率3.4Mbps,SPI可以达到很高的速率。
(6)I2C通过器件地址来选择从机,从机数量的增加不会导致GPIO的增加,而SPI通过CS选择从机,每增加一个从机就要多占用一个GPIO。
(7)SPI协议在SCLK边沿进行数据采样,I2C在SCL高电平器件进行数据采样。
两者大多都应用于板内器件短距离通讯。