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-

本站公众号
   欢迎关注本站公众号,获取更多信息