2017-04-20 87 views
-1

我从Blueduino板制造商的网页此代码段。它非常适合双向沟通,看起来很简单,但经过多次搜索,我无法理解它在做什么。Arduino的从端口1读取,发送到端口0

这是代码:

// 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); 
} 

很明显它写入到了,反之亦然(Rx接的Tx我相信),但我不知道为什么。

此代码的工作,当我在串口监视器写在手机上收到的,但我不知道该代码是如何考虑我在串口监视器发送消息和数据流中插入。

在此先感谢您的帮助。

回答

1

该代码转发从一个串行设备到另一个的消息。 最有可能在你的Arduinos串行接口(到你的电脑)到blueduino板之间。 您无法直接将PC连接到电话,也无法将blueduino电路板直接连接到PC的串行线路。

因此你需要的东西之间。 (你的arduino)转发每一个字节。

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

+0

谢谢你,那就是我的想法。 blueduino直接通过蓝牙连接到手机中的应用程序。我真正想要包装我的大脑的是这条消息如何通过这段代码进入流。如果我进入串口监视器并键入内容并按下发送,它会出现在我的手机上,同样,如果我转到我的手机应用程序并在其中输入任何内容,它将出现在串行监视器上。我不明白的是这个代码是如何实现这个的? –

+0

你的意思是哪个流?那么你不明白的代码是什么? – Piglet

+0

缓冲器(数据流) –