Я задал вопрос здесь о моей проблеме, и благодаря @enhzflep я решил большую часть своей проблемы. Моя проблема заключалась в том, что если я напишу 46754! ABCDEFG12345 # qwerwe в сериал, я хочу получить AB, который состоит из двух символов после '!'. Код ниже делает эту работу отлично. Однако теперь мне нужно получить «CD», «EF», три символа до «#» (для моего примера это означает «345»), и все, что между этими вещами - «G12», размер «G12» зависит от размер всего этого между '!' а также '#'. Короче говоря, я хочу получить различные части массива char между '!' а также '#'.
char pack[5] = {0};
char command[5] ={0};
int Index = 0;
bool Seen = false;
void setup(){
Serial.begin(9600);
}
void loop(){
while (Serial.available() > 0){
char received = Serial.read();
if (received == '!')
{
Seen = true;
}
else if (received == '#')
{
return strdup(pack);
return strdup(command);
}
else if (Seen == true){
if(Index<2){
pack[Index++] = received;
Serial.print(received);
}
/*if(Index>2&&Index<5){
command[Index++] = received;
Serial.print(received);
} */
}
}
return NULL;
}