Arduino - Serial Communication не работает - PullRequest
0 голосов
/ 28 февраля 2019

У меня проблемы с входом во второй цикл Serial.available моего кода, расположенного в пакете.Пожалуйста, дайте мне знать, если вы видите что-то не так с кодом. Код Arduino

Входы: 1. «Пакет» -> я получаю +1 от последовательного монитора 2. «5 & 12! 23! 34! 59! 70!»-> Я получаю 0 от Serial Monitor.Для этого, я должен увидеть, 5 12 23 34 59 70

Пожалуйста, дайте мне знать, если вы видите что-то не так в этом коде и почему Serial.available не работает в пакете?

String incoming;
String readIncoming; 
int i=0;
typedef struct {
  int npins;
  int addr[512];
}
measureList;
measureList list; 
void setup() {
    Serial.begin(9600);
    Serial.println("Serial conection started");
    incoming = ""; list.npins = 6; 
}
void loop() {
   while(Serial.available() > 0) {
   incoming = Serial.readString();

  if(incoming == "HI")        {  Serial.println("Steven"); }
  if(incoming == "SampleAll") {  SampleAll();             }
  if(incoming == "Package")   { Serial.println("+1"); Package(); }
  }
}
void Package(void)
{
  while(1)
{ 

if(Serial.available()>0 & i<= list.npins)

 {
        char recieved = Serial.read(); 

 if (recieved != '&' & i == 0){incoming = incoming + recieved;}

 if (recieved == '&' & i == 0){list.npins = incoming.toInt(); Serial.println(list.npins); incoming=""; i = 1;}

  if (recieved != '!' & recieved != '&' & i > 0){incoming = incoming + recieved; }

  if (recieved == '!' & recieved != '&' & i > 0){ list.addr[i] = incoming.toInt(); Serial.println(list.addr[i]);incoming = "";  i = i + 1;} 

 if (i == list.npins) {break;}
  }
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...