Mega 2560 + Neowey 590

tryinfinity
Offline
Зарегистрирован: 24.04.2017

Доброго дня!

Никак немогу запустить RX TX через Serial. Делаю все как указано в мануале, пример оттуда же:

#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); // RX, TX

void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }

  Serial.println("Goodnight moon!");
  mySerial.begin(4800);
  mySerial.println("AT");
}

void loop() { 
  if (mySerial.available()) {
    Serial.write(mySerial.read());
  }
  if (Serial.available()) {
    mySerial.write(Serial.read());
  }
}

В терминале пишет "Goodnight moon!" и всё. Ни на какие вводимые команды не отвечает. Хотя при подключении на 0 и 1 все работает нормально, но мне нужно через Serial.

Подскажите пожалуйста, может есть какой секрет.

kalapanga
Offline
Зарегистрирован: 23.10.2016

Скорость нужна именно 4800 ?

Feofan
Offline
Зарегистрирован: 28.05.2017

Несколько не в тему: у 2560 есть 4-е аппаратных Serial, нужен именно Software?

tryinfinity
Offline
Зарегистрирован: 24.04.2017

kalapanga пишет:

Скорость нужна именно 4800 ?

Вроде SoftwareSerial работает до 9600.

Feofan пишет:

Несколько не в тему: у 2560 есть 4-е аппаратных Serial, нужен именно Software?

угу

 

kalapanga
Offline
Зарегистрирован: 23.10.2016

Причём тут до какой скорости SoftwareSerial работает? Нужно конкретно ту скорость ставить на какой Neoway работает, а не от балды.

И если не секрет, то чем всё-таки куча аппаратных сериалов не устроила?

tryinfinity
Offline
Зарегистрирован: 24.04.2017

Добавил отображение того что отправляется

void loop() { 
  if (mySerial.available()) {
    Serial.write(mySerial.read());
  }
  if (Serial.available()) {
    Serial.println(Serial.read());
    mySerial.write(Serial.read());
  }
}

Вот что отображается:

13:37:52.135 -> Goodnight moon!
13:37:57.044 -> 65
13:37:57.044 -> 84
13:37:57.044 -> 13
13:37:57.091 -> 10

Это нормально?)

kalapanga
Offline
Зарегистрирован: 23.10.2016

65 84 13 10 - это результат println("AT") - A T CR LF.

tryinfinity
Offline
Зарегистрирован: 24.04.2017

Всем спасибо, разобрался)