WiFi 您所在的位置:网站首页 esp是什么设备wifi WiFi

WiFi

2024-07-04 01:18| 来源: 网络整理| 查看: 265

注:对于ESP8266开源技术感兴趣的可以加群,我们一起探索交流学习,群号:579932824。群名:ESP8266开源技术交流群。 介绍

I2C(Inter Integrated Circuit)是串行总线接口连接协议。它也被称为TWI(双线接口),因为它只使用两根线进行通信。这两条线是SDA(串行数据)和SCL(串行时钟)。

I2C是基于确认的通信协议,即在发送数据之后,发送器检查来自接收器的确认,以便知道数据是否被接收器成功接收。

两种模式即I2Cworks,

主模式从模式

SDA(串行数据)线用于主从设备之间的数据交换。SCL(串行时钟)用于主从设备之间的同步时钟。

主设备启动与从设备的通信。主设备需要向从设备地址发起与从设备的通话。主设备寻址时,从设备响应主设备。

NodeMCU的GPIO引脚支持I2C功能。由于ESP-12E的内部功能,我们不能将其所有GPIO用于I2C功能。因此,在使用任何GPIO用于I2C应用程序之前,请进行测试。

 

让我们来为NodeMCU编写Arduino程序作为I2C主设备,Arduino板子作为I2C从设备编写。主设备向从设备发送hello字符串,从设备发送hello字符串以响应主设备。

在这里,我们正在使用

主设备: NodeMCU

从属设备: Arduino Uno

从设备地址: 8

接口图如下图所示

NodeMCU Arduino I2C接口

NodeMCU Arduino I2C接口

 

针对NodeMCU的Arduino Sketch(主I2C设备) #include void setup() { Serial.begin(9600); /* begin serial for debug */ Wire.begin(D1, D2); /* join i2c bus with SDA=D1 and SCL=D2 of NodeMCU */ } void loop() { Wire.beginTransmission(8); /* begin with device address 8 */ Wire.write("Hello Arduino"); /* sends hello string */ Wire.endTransmission(); /* stop transmitting */ Wire.requestFrom(8, 13); /* request & read data of size 13 from slave */ while(Wire.available()){ char c = Wire.read(); Serial.print(c); } Serial.println(); delay(1000); } Arduino Uno(从I2C设备)Arduino Sketch #include void setup() { Wire.begin(8); /* join i2c bus with address 8 */ Wire.onReceive(receiveEvent); /* register receive event */ Wire.onRequest(requestEvent); /* register request event */ Serial.begin(9600); /* start serial for debug */ } void loop() { delay(100); } // function that executes whenever data is received from master void receiveEvent(inthowMany) { while (0


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有