Arduino Wire.h(IIC/ I2C)语法
转自:https://www.cnblogs.com/1996jiwei/p/6561681.html
本文转自上面链接,版权请直接参考原链接。
最近在用I2C进行通信交流,发现有两种方法的头文件需要开头宏出来(Wire.h 或 Eeprom.h),即使用了对于的源文件
所以需要了解对应库文件的语法,首先感谢博主分享
由于时间问题先介绍wire.h 语法
此库中包含
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()
描述 从机请求主机发送数据
Arduino Wire.h(IIC/ I2C)语法的更多相关文章
- Arduino Wire.h(IIC)库函数详解
此库中包含 1 Wire.begin() 2 Wire.requestFrom() 3 Wire.beginTransmission() 4 Wire.endTransmission() 5 Wire ...
- "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 Wire Library读取温湿度传感器AM2321
AM2321是采用I2C总线或单总线通讯的国产温湿度传感器.在AM2321手册中,当采用I2C通讯时,手册指定了多处需要主机等待的时间间隔,包括: (1)唤醒传感器时,从机不回复ACK,但主机主要等待 ...
- verilog中24LC04B iic(i2c)读写通信设计步骤,以及程序常见写法错误。
板子使用的是黑金的是xilinx spartan-6开发板,首先准备一份24LC04B芯片资料,读懂资料后列出关键参数. 如下: 1.空闲状态为SDA和SCL都为高电平 2.开始状态为:保持SCL,S ...
- 在Linux 应用层 基于i2c-dev.h 实现i2c读写
/* i2c-dev.h - i2c-bus driver, char device interface Copyright (C) 1995-97 Simon G. Vogl Copyright ( ...
- 嵌入式常用技术概览之IIC(I2C)
一.先决知识 (1)模电基础知识(用以理解IIC如何通信) 二.IIC概览 I2C是80年代飞利浦(Philips->NXP->高通)研 ...
- Arduino String.h库函数详解
此库中包含 1 charAT() 2 compareTo() 3 concat() 4 endsWith() 5 equals() 6 equalslgnoreCase() 7 getBytes() ...
- I2C总线的Arduino库函数
I2C总线的Arduino库函数 I2C即Inter-Integrated Circuit串行总线的缩写,是PHILIPS公司推出的芯片间串行传输总线.它以1根串行数据线(SDA)和1根串行时钟线(S ...
- Arduino通过I2C(PCF8574T)驱动1602LCD
Arduino中使用I2C通信可直接调用Wire.h库, 这个库允许Arduino链接其他I2C设备, 链接线有两条, 分别是SDA(数据行)和SCI(时钟线). 各型号Arduino的I2C对应引脚 ...
随机推荐
- Laravel chunk和chunkById的坑
Laravel chunk和chunkById的坑 公司中的项目在逐渐的向Laravel框架进行迁移.在编写定时任务脚本的时候,用到了chunk和chunkById的API,记录一下踩到的坑. 一.前 ...
- c# 可获取系统环境
c# 可获取系统环境, 启动进程执等 *.shell [MenuItem("Tools/DesignHelper/Clean and Pull")] private sta ...
- mysql必知必会——GROUP BY和HAVING
mysql必知必会——GROUP BY和HAVING 创建表结构 create table `employ_info` ( `id` int(11) NOT NULL AUTO_INCREMENT, ...
- webpack使用优化(基本篇
为什么要使用Webpack 与react一类模块化开发的框架搭配着用比较好. 属于配置型的构建工具,比较用容易上手,160行代码可大致实现gulp400行才能实现的功能. webpack使用内存来对构 ...
- 高可用集群corosync+pacemaker之pcs安装使用
前文我们介绍了高可用集群corosync+pacemaker的集群管理工具crmsh的常用命令的使用,回顾请参考https://www.cnblogs.com/qiuhom-1874/tag/crms ...
- 跟着兄弟连系统学习Linux-【day08】
day08-20200605 p27.软件包管理简 windows 和 linux 软件是不同的版本. Linux源码包,开源的.绝大部分都是C语言写的.源码包安装速度比较慢.需要先编译后再安装.脚本 ...
- ElasticSearch7.6.1 概述
本来打算重新回去看 并发编程的,之前看过一遍,现在基本忘完了,然后因为考虑到项目的需要,就先看ES了 然后再B站上看到一个视屏比较火,就看这个吧 给大家推荐一下 https://www.bilibil ...
- HarmonyOS面向128KB-128MB内存终端开源
2020年9月10日,以HDC Together为主题的2020年度华为开发者大会在东莞·松山湖举办,华为带来了HarmonyOS 2.0.EMUI 11.HMS.HUAWEI HiLink.HUAW ...
- 我的Python自学之路-003 字符串的知识
'''字符串是以引号或者单引号括起来的任意文本,例如"123","asdfjk",'adfa'引号或者单引号,只是一种表示方法,并不是字符串的一部分如果字符串本 ...
- doeker部署zabbix
docker部署zabbix 我相信大家都已经会再物理机上跑zabbix并且监控了,那么有没有想过在docker中跑zabbix?下面咱们来看看如何在docker中搭建zabbix并且监控 部署环 ...