zoukankan      html  css  js  c++  java
  • Arduino Wire.h(IIC)库函数详解


    此库中包含
    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()

    描述
    从机请求主机发送数据

  • 相关阅读:
    LeetCode Best Time to Buy and Sell Stock
    LeetCode Scramble String
    LeetCode Search in Rotated Sorted Array II
    LeetCode Gas Station
    LeetCode Insertion Sort List
    LeetCode Maximal Rectangle
    Oracle procedure
    浏览器下载代码
    Shell check IP
    KVM- 存储池配置
  • 原文地址:https://www.cnblogs.com/1996jiwei/p/6561681.html
Copyright © 2011-2022 走看看