Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Serialization 从端口1读取Arduino,发送到端口0_Serialization_Arduino - Fatal编程技术网

Serialization 从端口1读取Arduino,发送到端口0

Serialization 从端口1读取Arduino,发送到端口0,serialization,arduino,Serialization,Arduino,我从Blueduino板制造商的页面上得到了这段代码。它的双向沟通效果非常好,看起来很简单,但经过多次搜索,我无法理解它在做什么 代码如下: // read from port 1, send to port 0: if (Serial1.available()) { int inByte = Serial1.read(); Serial.write(inByte); } // read from port 0, send to port 1: if (Serial.available

我从Blueduino板制造商的页面上得到了这段代码。它的双向沟通效果非常好,看起来很简单,但经过多次搜索,我无法理解它在做什么

代码如下:

// read from port 1, send to port 0:
if (Serial1.available()) {
  int inByte = Serial1.read();
  Serial.write(inByte);
}

// read from port 0, send to port 1:
if (Serial.available()) {
  int inByte = Serial.read();
  Serial1.write(inByte);
}
很明显,它是从输入到输出,反之亦然(我相信是从接收到发送),但我不知道为什么

这段代码正在工作,当我在串行监视器中写入时,手机会接收到它,但我不确定这段代码是如何接收我在串行监视器中发送的消息并将其插入流中的


提前感谢您的帮助。

此代码用于将消息从一个串行设备转发到另一个串行设备。 很可能是在Arduinos串行接口(到pc)和blueduino板之间。 您无法将电脑直接连接到手机,也无法将blueduino板直接连接到电脑的串行线

因此,你需要介于两者之间的东西。(你的arduino)转发每个字节


您的代码对两个端口的作用基本相同。如果串行接收缓冲区中有一个字节,请读取该字节并将其发送到另一个端口。

谢谢,这就是我的想法。blueduino通过蓝牙直接连接到我手机中的应用程序。我真正想弄清楚的是,信息是如何通过这些代码进入流的。如果我进入串行监视器并键入内容,然后按send,它会出现在我的手机上,同样,如果我进入手机应用程序并键入内容,它也会出现在串行监视器上。我不明白的是这段代码是如何实现的?你指的是哪个流?那你不懂的代码呢?缓冲区(数据流)在我看来,代码只会输出输入的任何东西。因此,如果我在手机上打招呼,它就会输出到arduino。如果我在arduino上说再见的话,就会被发送到电话上。但是我不明白的是,如果通常写入串行端口的行是serial,write,并且这个命令已经被这个代码调用了,那么监视器如何能够插入我刚才写的单词呢。抱歉,这很难解释。如果你从电脑或手机发送消息,它将最终进入你的Arduinos接收缓冲区。一个字节接一个字节(当然一切都发生得很快)。代码将检查接收缓冲区(Serial.available()中是否有内容,如果有,则读取内容并将其发送到另一个串行端口(在该端口将内容写入写入写入缓冲区,然后从该端口写入手机或pc的接收缓冲区).该代码将在循环中使用,因此您可以不断检查接收缓冲区中是否至少有1个新字节可以转发…仍然不确定您在询问什么