前言:Wire.h是Arduino的IIC库。

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

二、库函数详细介绍

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

描述

初始化wire库 ,并且加入到I2C网络,前者作为Master 或 Slaver,并且只能调用一次。

参数

address :7位的器件地址(可选),如果没有输入,则以Master的形式加入到I2C网络。

2、Wire.requestFrom()

描述

主设备请求从设备一个字节,这个字节可以被主设备用 read()或available()接受。

Wire.requrstFrom(addtess,quantity)

Wire.requrstFrom(addtess,quantity,stop)

参数

addtess : 7位的器件地址

quantity : 请求得到的数量

stop :布尔形,‘1’ 则在请求结束后发送一个停止命令,并释放总线。‘0’则继续发送请求保持连接。

返回

字节形 ,从从机接受到的字节数目。

3  Wire.beginTransmission(address)

描述

开始一次传输数据,发送一个I2C开始字符

参数

address : 器件的7位地址

返回值 无

4、 Wire.endTransmission()和Wire.endTransmission(stop)

描述

结束一个由beginTransmission()开始的并且由write()排列的从机的传输。在Arduino中 endTransmission()接受到

一个布尔形变量,如果为1 则endTransmission()发送一个停止信息;如果为0 则发送开始信息

返回值

0 成功 1 数据溢出 2 发送addtess时从机接受到NACK 3 发送数据时接受到 NACK 4 其他错误

5、 Wire.write()

描述

向从机发送数据

形式

Wire.write(value)

Wire.write(string)

Wire.write(data, length)

参数

value :要发送的数值

string :字符组的指针

data :一个字节数组

length :传输的数量

例子:

#include <Wire.h>

;

void setup()
{
   Wire.begin(); // join i2c bus
}

void loop()
{
   Wire.beginTransmission(); // 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 reached 64th position (max)
   {
     val = ;    // start over from lowest value
   }
   delay();}

6、  Wire.available()

描述
Wire.requestFrom()请求从机数据后,可以使用available接收

7、 Wire.read()

描述
Wire.requestFrom()请求从机数据后,可以使用read接收

8、 Wire.onReceive()

描述
从机接收主机发来的数据

9、 Wire.onRequest()

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

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

-END-

Arduino-IIC-Wire.h的更多相关文章

  1. Arduino Wire.h(IIC)库函数详解

    此库中包含 1 Wire.begin() 2 Wire.requestFrom() 3 Wire.beginTransmission() 4 Wire.endTransmission() 5 Wire ...

  2. Arduino Wire.h(IIC/ I2C)语法

    转自:https://www.cnblogs.com/1996jiwei/p/6561681.html 本文转自上面链接,版权请直接参考原链接. 最近在用I2C进行通信交流,发现有两种方法的头文件需要 ...

  3. "Cannot open source file "Wire.h" " in Arduino Development

    0. Environment Windows 8 x64 Arduino 1.0.5 Visual studio 2012 Visual micro Arduino 1. Steps Add &quo ...

  4. Arduino IIC 主从设备连接通信

    目的:        实现Arduino主从设备之间的互相IIC通信,掌握IIC通信协议的使用方法. 器材: Arduino UNO R3 一块 Arduino Nano 三块 面包板   导线 3K ...

  5. Arduino基础入门—3.连接 IIC 1602 LCD显示文字

    1. IIC转接板介绍 Arduino Uno R3开发板的外部IO口是非常有限的.在驱动LCD1602时,尽管我们的数据线使用了4线,相对于8线方式减少一半,但是在需要外接多种传感器的应用中,4线驱 ...

  6. 使用Arduino Wire Library读取温湿度传感器AM2321

    AM2321是采用I2C总线或单总线通讯的国产温湿度传感器.在AM2321手册中,当采用I2C通讯时,手册指定了多处需要主机等待的时间间隔,包括: (1)唤醒传感器时,从机不回复ACK,但主机主要等待 ...

  7. Arduino库函数中文说明

    #define 常量名 常量值 % 取模运算符 String abc  /  char abc[n]  定义字符串 pinMode(pin,mode);  用于引脚的初始化  mode包括 INPUT ...

  8. Arduino通过I2C(PCF8574T)驱动1602LCD

    Arduino中使用I2C通信可直接调用Wire.h库, 这个库允许Arduino链接其他I2C设备, 链接线有两条, 分别是SDA(数据行)和SCI(时钟线). 各型号Arduino的I2C对应引脚 ...

  9. 用arduino制作具有无限数据传输功能的气象站

    本项目是用arduino开源硬件,来快速制作具有无限数据传输功能的气象站,我之前做过一个带数据记录功能的气象站项目,这次算是升级和改进的版本. 第1步:构想 首先,需要增加从气象站到室内接收器的无线数 ...

随机推荐

  1. I2C controller core之Bit controller(04)

    4) detect start/stop condition START- falling edge on SDA while SCL is high;  STOP -  rising edge on ...

  2. 转:Python结合P有winauto进行windows UI自动化

    https://blog.csdn.net/z_johnny/article/details/52778064

  3. python3:语法变动 及新特性

    python3.0 对python2.x 升级后重大语法变动,幸好留下2.7.6及后续2版本,保持一些语法兼容. 原始地址:http://hi.baidu.com/jxq61/item/3a24883 ...

  4. servlet向浏览器输出信息

    package com.aaa.servlet; import javax.servlet.ServletException; import javax.servlet.annotation.WebS ...

  5. 浏览器内置的base64方法

    Base64是一种基于64个可打印字符来表示二进制数据的表示方法.在Base64中的可打印字符包括字母A-Z.a-z.数字0-9,这样共有62个字符,此外两个可打印符号在不同的系统中而不同(维基百科: ...

  6. jquery相关常用的工具函数

    1.弹出提示框: function prompt(msg){ $("<div>" + msg + "</div>").css({ &qu ...

  7. 【剑指Offer】6、旋转数组的最小数字

      题目描述:   把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5 ...

  8. 设置快捷键用sublime直接打开浏览器

    1.安装sidebarenhancements插件 ctrl+shift+p —> Install Package —> 找到SideBarEnhancements 2.配置预览快捷键 / ...

  9. 佛祖保佑 永无BUG ; 心外无法 法外无心

    登录linux命令行后出现的图形 复制图形代码到相应的文件中保存,重新登录即可出现. Usage: For Ubuntu: 12.04: Just copy the content from Budd ...

  10. Oracle SQL语句之常见优化方法总结

    1.用EXISTS替换DISTINCT 当SQL包含一对多表查询时,避免在SELECT子句中使用DISTINCT,一般用EXIST替换,EXISTS(低效): SELECT DISTINCT USER ...