1、用哪种协议,首先肯定是看这个外设芯片支持什么协议。
2、其次再考虑如下两个因素:访问速度和主控IO口资源的多少。
IIC
不考虑电源和GND的情况下,两条线,SCL时钟线和SDA数据线,同一个IIC总线上可以挂载2^7-1一共127个设备,不过由于寄生电容的存在,挂载不了这么多,一般不超过8个IIC设备,但也算节省主控IO口资源。
同一条IIC总线上,不同设备靠设备地址区分。
由于只有两条线,共用数据线,所以是半双工通信,通信速度慢。如图:
SPI
不考虑电源和GND的情况下,SPI有四根线,片选信号SS,时钟SCLK,主输入从输出MISO,主输出从输入MOSI。
所以占用主控IO较多,不光要片选的IO口,数据线也有两条。
但与此同时,因为数据线主从一人一条,所以是全双工通信,所以传输速率较快。
SCLK: Serial Clock (output from master);MOSI; Master Output, Slave Input(output from master);MISO; M