Arduino-IIC-Wire.h

前言:Wire.h是Arduino的IIC庫。數組

1、Wire庫函數

  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()

2、庫函數詳細介紹

一、Wire.begin() 和 Wire.begin(address)

描述 

初始化wire庫 ,而且加入到I2C網絡,前者做爲Master 或 Slaver,而且只能調用一次。網絡

參數

address :7位的器件地址(可選),若是沒有輸入,則以Master的形式加入到I2C網絡。函數

二、Wire.requestFrom()

描述

主設備請求從設備一個字節,這個字節能夠被主設備用 read()或available()接受。oop

Wire.requrstFrom(addtess,quantity)ui

Wire.requrstFrom(addtess,quantity,stop)spa

參數

addtess : 7位的器件地址.net

quantity : 請求獲得的數量指針

stop :布爾形,‘1’ 則在請求結束後發送一箇中止命令,並釋放總線。‘0’則繼續發送請求保持鏈接。code

返回

字節形 ,從從機接受到的字節數目。blog

3  Wire.beginTransmission(address)

描述 

開始一次傳輸數據,發送一個I2C開始字符

參數 

address : 器件的7位地址

返回值 無

四、 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()

描述
從機請求主機發送數據

參考自:https://blog.csdn.net/zhao_120/article/details/47028415

-END-

本站公眾號
   歡迎關注本站公眾號,獲取更多信息