前言: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-