前言:Wire.h是Arduino的IIC库。数组
初始化wire库 ,而且加入到I2C网络,前者做为Master 或 Slaver,而且只能调用一次。网络
address :7位的器件地址(可选),若是没有输入,则以Master的形式加入到I2C网络。函数
主设备请求从设备一个字节,这个字节能够被主设备用 read()或available()接受。oop
Wire.requrstFrom(addtess,quantity)ui
Wire.requrstFrom(addtess,quantity,stop)spa
addtess : 7位的器件地址.net
quantity : 请求获得的数量指针
stop :布尔形,‘1’ 则在请求结束后发送一个中止命令,并释放总线。‘0’则继续发送请求保持链接。code
字节形 ,从从机接受到的字节数目。blog
开始一次传输数据,发送一个I2C开始字符
address : 器件的7位地址
结束一个由beginTransmission()开始的而且由write()排列的从机的传输。在Arduino中 endTransmission()接受到
一个布尔形变量,若是为1 则endTransmission()发送一个中止信息;若是为0 则发送开始信息
0 成功 1 数据溢出 2 发送addtess时从机接受到NACK 3 发送数据时接受到 NACK 4 其余错误
向从机发送数据
Wire.write(value)
Wire.write(string)
Wire.write(data, length)
value :要发送的数值
string :字符组的指针
data :一个字节数组
length :传输的数量
#include <Wire.h> byte val = 0; void setup() { Wire.begin(); // join i2c bus } void loop() { Wire.beginTransmission(44); // transmit to device #44 (0x2c) // device address is specified in datasheet Wire.write(val); // sends value byte Wire.endTransmission(); // stop transmitting val++; // increment value if(val == 64) // if reached 64th position (max) { val = 0; // start over from lowest value } delay(500);
}
描述
Wire.requestFrom()请求从机数据后,可使用available接收
描述
Wire.requestFrom()请求从机数据后,可使用read接收
描述
从机接收主机发来的数据
描述
从机请求主机发送数据
参考自:https://blog.csdn.net/zhao_120/article/details/47028415
-END-