Как разделить строковые данные в 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);
}
@Farmato Inonu, 👍0
Обсуждение1 ответ
▲ 1
Все числа целые?
Если да, вы можете использовать функцию toInt()
.
int secondValueInt, thirdValueInt;
secondValueInt = secondValueInt.toInt();
thirdValueInt = thirdValue.toInt();
,
@leoc7
спасибо большое, братан, ты спасаешь жизни (Y), @Farmato Inonu
Смотрите также:
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
Подсказка: попробуйте 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