Arduino Mega和Arduino Nano之间的串行通信

时间:2020-01-29 09:06:44

标签: arduino

我正在尝试将arduino Mega板连接到Arduino Nano,我将它们连接如下:

MeAuriga | Nano
GND      | GND
TX       | RX
RX       | TX

Mega是接收器,代码在这里:

char mystr[10]; //Initialized variable to store recieved data

void setup() {
  // Begin the Serial at 9600 Baud
  Serial.begin(9600);
}

void loop() {
  Serial.readBytes(mystr,5); //Read the serial data and store in var
  Serial.println(mystr); //Print data on Serial Monitor
  delay(1000);
}

还有发送方Nano的代码:

 char mystr[5] = "Hello"; //String data

    void setup() {
      // Begin the Serial at 9600 Baud
      Serial.begin(9600);
    }

    void loop() {
      Serial.write(mystr,5); //Write the serial data
      delay(1000);
    }

发生的事情: 当我在nano上将它们连接在一起时,我只是在串行监视器上获得Hello的打印,而断开电缆的连接也不会影响它继续打印问候。

大型串行监视器为空白。

任何帮助将不胜感激。

编辑: 我将Serial.readBytes更改为Serial1.readBytes,但我没有将nano连接到USB,而是通过VIN供电。我只有USB连接到Mega。我确实在针18和19上连接了nano

2 个答案:

答案 0 :(得分:0)

问题在这里:

void loop() {
  Serial.readBytes(mystr,5); //Read the serial data and store in var
  Serial.println(mystr); //Print data on Serial Monitor
  delay(1000);
}

您没有串行监视器了!

如果您使用RX / TX,则也无法连接USB电缆,因为该电缆用于与Nano通讯。

如果您的Arduino上有2个串行端口(巨型端口有4个):

        |COM|PIN RX|PIN TX|  
        | 0 |   0  |   1  |
        | 1 |  19  |  18  |
        | 2 |  17  |  16  |
        | 3 |  15  |  14  |

Serial用于终端(通过USB电缆),另外3个可用于连接Nano。只需写Serial1.readBytes,而不是Serial.readBytes

如果没有任何串行端口,则可以使用SoftwareSerial库。

答案 1 :(得分:0)

我通过同时启动两者来修复它。

巨型

char mystr[10]; //Initialized variable to store recieved data

void setup() {
  // Begin the Serial at 9600 Baud
  Serial.begin(9600);
  Serial1.begin(9600);
}

void loop() {
  Serial1.readBytes(mystr,5); //Read the serial data and store in var
  Serial.println(mystr); //Print data on Serial Monitor
  delay(1000);
}
相关问题