Arduino-IIC-Wire.h
前言:Wire.h是Arduino的IIC库。
一、Wire库函数
- Wire.begin()
- Wire.requestFrom()
- Wire.beginTransmission()
- Wire.endTransmission()
- Wire.write()
- Wire.available()
- Wire.read()
- Wire.onReceive()
- 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的更多相关文章
- Arduino Wire.h(IIC)库函数详解
此库中包含 1 Wire.begin() 2 Wire.requestFrom() 3 Wire.beginTransmission() 4 Wire.endTransmission() 5 Wire ...
- Arduino Wire.h(IIC/ I2C)语法
转自:https://www.cnblogs.com/1996jiwei/p/6561681.html 本文转自上面链接,版权请直接参考原链接. 最近在用I2C进行通信交流,发现有两种方法的头文件需要 ...
- "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 ...
- Arduino IIC 主从设备连接通信
目的: 实现Arduino主从设备之间的互相IIC通信,掌握IIC通信协议的使用方法. 器材: Arduino UNO R3 一块 Arduino Nano 三块 面包板 导线 3K ...
- Arduino基础入门—3.连接 IIC 1602 LCD显示文字
1. IIC转接板介绍 Arduino Uno R3开发板的外部IO口是非常有限的.在驱动LCD1602时,尽管我们的数据线使用了4线,相对于8线方式减少一半,但是在需要外接多种传感器的应用中,4线驱 ...
- 使用Arduino Wire Library读取温湿度传感器AM2321
AM2321是采用I2C总线或单总线通讯的国产温湿度传感器.在AM2321手册中,当采用I2C通讯时,手册指定了多处需要主机等待的时间间隔,包括: (1)唤醒传感器时,从机不回复ACK,但主机主要等待 ...
- Arduino库函数中文说明
#define 常量名 常量值 % 取模运算符 String abc / char abc[n] 定义字符串 pinMode(pin,mode); 用于引脚的初始化 mode包括 INPUT ...
- Arduino通过I2C(PCF8574T)驱动1602LCD
Arduino中使用I2C通信可直接调用Wire.h库, 这个库允许Arduino链接其他I2C设备, 链接线有两条, 分别是SDA(数据行)和SCI(时钟线). 各型号Arduino的I2C对应引脚 ...
- 用arduino制作具有无限数据传输功能的气象站
本项目是用arduino开源硬件,来快速制作具有无限数据传输功能的气象站,我之前做过一个带数据记录功能的气象站项目,这次算是升级和改进的版本. 第1步:构想 首先,需要增加从气象站到室内接收器的无线数 ...
随机推荐
- 学习廖雪峰的Python教程之数据类型
数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需要定 ...
- 解决JavaOpenCV的内存问题
在使用OpenCV时,程序总是在某个时间墨明棋妙地终止,打开CygWin ,输入 adb logcat ,查看打印的信息,发现是内存问题.经过反复的查找,发现使用OpenCV的java类库时,一定要慎 ...
- Linux命令小记
以下说法都是基于普通用户的角度,如果是root,可能会有不同. (1)rm -r或-R选项:递归删除目录及其内容(子目录.文件) rm默认无法删除目录,如果删除空目录,可以使用-d选项.如果目录非空, ...
- 一次由于 MTU 设置不当导致的网络访问超时
转自:http://weibo.com/ttarticle/p/show?id=2309404140904511340923 API 服务正常,但是调用总是超时.api端日志显示,响应速度很快. ...
- 《奋斗吧!菜鸟》 第八次作业:Alpha冲刺 Scrum meeting 5
项目 内容 这个作业属于哪个课程 任课教师链接 作业要求 https://www.cnblogs.com/nwnu-daizh/p/11012922.html 团队名称 奋斗吧!菜鸟 作业学习目标 A ...
- D2007在win7下bordbk105N.dll 莫名其妙的问题。
已经装过一次win7下d2007.再装一次就出现许多莫名其妙的问题.其中之一: Windows 7 64bit Delphi Debugger Fix / Workaround 2013-08-28 ...
- adchos 文本混淆工具
#-*- coding:utf-8 -*- import jieba import random import codecs import sys import string import chard ...
- 图论·Dijkstra·HDU2066
这道题刚做的时候用的Floyd,果断超时,于是去学了Dijkstra,主函数和Floyd很像. 原理: 从起点开始,找最近的又未标记的点,记录距离,标记此点,再找此点附近相连的未标记的点,记录下距离, ...
- Spring Cloud-hystrix(六)
作用 防止 多个服务相互交互时某个服务运行缓慢导致调用方线程挂起,高并发情况下 导致挂起线太多 引起调用方的服务不可用 能够在服务发生故障或者通过断路器监控向调用方返回一个错误 而不是长时间的等待 S ...
- 转载 - 算法实践——舞蹈链(Dancing Links)算法求解数独
出处:http://www.cnblogs.com/grenet/p/3163550.html 在“跳跃的舞者,舞蹈链(Dancing Links)算法——求解精确覆盖问题”一文中介绍了舞蹈链(Dan ...