此庫中包含
1 Wire.begin()
2 Wire.requestFrom()
3 Wire.beginTransmission()
4 Wire.endTransmission()
5 Wire.write()
6 Wire.available()
7 Wire.read()
8 Wire.onReceive()
9 Wire.onRequest()
Wire.begin() 和 Wire.begin(address)
描述
初始化wire庫 ,並且加入到I2C網絡,前者作為Master 或 Slaver,並且只能調用一次
參數
address :7位的器件地址(可選),如果沒有輸入,則以Master的形式加入到I2C網絡
Wire.requestFrom()
描述
主設備請求從設備一個字節,這個字節可以被主設備用 read()或available()接受
Wire.requrstFrom(addtess,quantity)
Wire.requrstFrom(addtess,quantity,stop)
參數
addtess : 7位的器件地址
quantity : 請求得到的數量
stop :布爾形,‘1’ 則在請求結束后發送一個停止命令,並釋放總線。‘0’則繼續發送請求保持連接
返回
字節形 ,從從機接受到的字節數目
Wire.beginTransmission(address)
描述
開始一次傳輸數據,發送一個I2C開始字符
參數
address : 器件的7位地址
返回
none
Wire.endTransmission()和Wire.endTransmission(stop)
描述
結束一個由beginTransmission()開始的並且由write()排列的從機的傳輸。在Arduino中 endTransmission()接受到
一個布爾形變量,如果為1 則endTransmission()發送一個停止信息;如果為0 則發送開始信息
返回
0 成功 1 數據溢出 2 發送addtess時從機接受到NACK 3 發送數據時接受到 NACK 4 其他錯誤
Wire.write()
描述
向從機發送數據
形式
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.available()
描述
Wire.requestFrom()請求從機數據后,可以使用available接收
Wire.read()
描述
Wire.requestFrom()請求從機數據后,可以使用read接收
Wire.onReceive()
描述
從機接收主機發來的數據
Wire.onRequest()
描述
從機請求主機發送數據