Arduino с SoftwareSerial: 2 программы, один и тот же код, одна не работает - PullRequest
0 голосов
/ 14 мая 2019

Простая программа, перезапускающая устройство IoT.Все работает нормально, как и ожидалось.Как только я поместил этот код в мою большую программу, он больше не будет работать.Часть, где я читаю данные с устройства, просто вернет "" (пустые строки).Кто-нибудь знает, почему?

Рабочая программа просто:

    #include <SoftwareSerial.h>

    SoftwareSerial NB_IOT_DEV (12, 13); //(RX = 0, TX = 1)
    String nbState = "";

    void setup() {
      Serial.begin(9600);
      Serial.println(F("Hello World"));

      NB_IOT_DEV.begin(9600);

      Serial.println(F("Sending EASY+Restart"));
      short i=0;
      NB_IOT_DEV.println("EASY+Restart");
      do {
        nbState = NB_IOT_DEV.readString();
        nbState.trim();
        Serial.print(F("NB State: "));
        Serial.println(nbState);
        delay (1000);
        i++;
      } while (nbState.indexOf("ModemStatus:Detached") == -1 && i < 50);


      Serial.println(F("Sending EASY+Device"));
      i=0;
      NB_IOT_DEV.println("EASY+Device");
      do {
        nbState = NB_IOT_DEV.readString();
        nbState.trim();
        Serial.print(F("NB State: "));
        Serial.println(nbState);
        delay (1000);
        i++;
      } while (nbState.indexOf("EASY#Device:Success") == -1 && i < 50);

    }

    void loop() {

    }

В нерабочем эскизе у меня есть код внутри функции, вызываемой из функции цикла, это точно такой же код, но .readString () просто возвращает пустую строку.

1 Ответ

0 голосов
/ 14 мая 2019

Нашли причину: невозможно одновременно подключить 2 устройства через программный последовательный порт Временное решение: используйте функцию .listen () SoftwareSerial для прослушивания той, которую вы используете в данный момент

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...