1.IIC简介
IIC:Inter-Integrated Circuit(内部集成电路)
需要两个管脚:SDA、SCL
SPI协议:一个主设备对多个从设备,每增加一个从设备,需要增加一个端口CS*
特点:速度较快,1~100M
IIC协议:可以多对多,速度分类:100K 400K 3.4M 5M,传输速度没有SPI快,所以在利用显示屏显示数据时常用SPI通讯协议来提高刷新率。(TFT用SPI,LCD OLED使用IIC协议就可以满足需求。)
IIC使用时需要在SDA SCL上接上拉电阻,常用4.7K,电阻跟速度成反比,跟功耗成正比
2.IIC从设备地址查询
最多可以连接128个从设备
#include <Wire.h>
void setup()
{
Serial.begin(9600); //开启串口显示
while (!Serial);
Serial.println("\nI2C Scanner");
Wire.begin(); // 开启I2C, 不写地址,就是主设备
Wire.setClock(100000); //默认 100KHz
Wire.setWireTimeout(3000, true); // timeout (us,reset_on_timeout)
}
void loop()
{
Serial.println("Scanning...");
for (int i = 0; i < 128; i++ )
{
Wire.beginTransmission(i); // 准备向指定地址开始传输数据
byte code = Wire.endTransmission(); //结束传输
if (code == 0) //反馈0,代表收到回应,一切正常
{
Serial.print("Found: 0x");
Serial.println(i, HEX);
}
}
delay(5000);
}