Как разделить строковые данные в Arduino?

Я отправляю строковые данные через последовательный порт в следующем формате, например. :45:60 или например ":120:57".Я получил данные, показанные в Serial.println (второе значение) Serial.println (третье значение); но я не могу преобразовать его в int

String myString;
char c;
int Index1,Index2,Index3, azi;
String secondValue, thirdValue;
void setup(){
Serial.begin(9600);}
void loop(){
while (Serial.available()>0)
{
delay(10);
c = Serial.read();
 myString += c;
}
 if (myString.length()>0)
{
Index1 = myString.indexOf(':');
Index2 = myString.indexOf(':', Index1+1);
Index3 = myString.indexOf(':', Index2+1);

secondValue = myString.substring(Index1+1, Index2);
thirdValue = myString.substring(Index2+1, Index3);


Serial.println(secondValue);
Serial.println(thirdValue);

myString="";
}
delay(1000);
}

, 👍0

Обсуждение

Подсказка: попробуйте String.toInt(), https://www.arduino.cc/en/Tutorial.StringToIntExample., @Mikael Patel

https://majko.co.uk/blog/evils-arduino-strings, @Majenko

https://majko.co.uk/blog/splitting-text-c, @Majenko

https://majko.co.uk/blog/reading-serial-arduino, @Majenko


1 ответ


1

Все числа целые? Если да, вы можете использовать функцию toInt().

int secondValueInt, thirdValueInt;

secondValueInt = secondValueInt.toInt();
thirdValueInt = thirdValue.toInt();
,

спасибо большое, братан, ты спасаешь жизни (Y), @Farmato Inonu