ATtiny85具有多个输入的串行通信

时间:2015-01-25 18:09:25

标签: serial-communication arduino-uno attiny software-serial

在一个项目中,我们尝试在三个ATtinys之间建立一个通信网络,第一个必须接收来自其他两个的消息。那两个小的连接器连接到第一个小的两个不同的引脚。然后,第一个小小的必须接收来自其他小部分的两个字符串,每个字符串各一个,并将其发送到Arduino。对于我们使用SoftwareSerial的通信。我们设法从一个小的接收和发送输入,但不是从它们两个接收,因为我们找不到一次只从一个特定引脚读取输入的方法。 这是我们使用的代码:

#include <SoftwareSerial.h>
const int rx=4;
const int rx2=1;
const int tx=3;
const int tx2=3;

SoftwareSerial mySerial(rx,tx);
SoftwareSerial mySerial2(rx2,tx2);

void setup() 
{ 
  pinMode(rx,INPUT);
  pinMode(rx2,INPUT);
  pinMode(tx,OUTPUT);

  mySerial.begin(9600);
  mySerial2.begin(9600);
} 

void loop()
{
  mySerial.listen();

  if (mySerial.isListening()) {
    mySerial.println("Port One is listening!"); 
    mySerial.println(mySerial.read());
  }
  else{
    mySerial.println("Port One is not listening!"); 
  }

  mySerial2.listen();
  if (mySerial2.isListening()) {
    mySerial2.println("Port Two is listening!"); 
    mySerial2.println(mySerial2.read());
  }
  else{
    mySerial2.println("Port Two is not listening!"); 
  }

  delay(500);

}

上面的代码在mySerial2.listen();之后没有部分工作。也许listen - SoftwareSerial的函数不适用于tinys,但如果是这样的话,还有另一种方法可以监听特定的输入引脚吗? 或者你有什么建议吗?

0 个答案:

没有答案