【发布时间】:2014-07-31 23:12:27
【问题描述】:
我在使用带有 arduino 板的两个软件串行端口从两个传感器获取数据时遇到问题。我注意到以前可能有人问过类似的问题,但答案表明它无法完成,我完全知道它可以基于此处的示例 (http://arduino.cc/en/Tutorial/TwoPortReceive)!
我正在使用 arduino 以太网。我试图从中获取数据的设备包括来自 sparkfun 的 GPS 和 IMU。
我可以只使用软件串行端口从任一设备获取数据,但是一旦我添加了第二个软件串行端口,两个端口都将无法工作。我无法使用硬件串行端口,因为它正在被另一台设备使用。
我的代码和例子一模一样:
#include <SoftwareSerial.h>
SoftwareSerial portOne(7,8);
SoftwareSerial portTwo(5,6);
void setup()
{
Serial.begin(9600);
portOne.begin(9600);
portTwo.begin(9600);
}
void loop()
{
portOne.listen();
while (portOne.available() > 0) {
char inByte = portOne.read();
Serial.write(inByte);
}
delay(500);
portTwo.listen();
while (portTwo.available() > 0) {
char inByte = portTwo.read();
Serial.write(inByte);
}
Serial.println();
}
有人有什么想法吗?
【问题讨论】:
-
你能告诉我们更多关于它是如何不工作的信息吗?
-
我不知何故让它工作了,你必须设置引脚状态,即接收引脚作为输入,发送引脚作为输出。
标签: arduino