@TjmaMine

Arduino Как разобрать String пословно, а не посимвольно?

У меня к ардуинке подключен блютуз модуль, он получает команды "0 0" "0 1" "1 31", а именно первое число - какой параметр надо изменить, а второе число - новое значение этому параметру
и этот "1 31" мне надо разобрать пословно, я нашёл в интернете только разбор по символьно:
void bt_tick() {
  if (bluet.available()) {
    String rs = bluet.readString();
    Serial.println(rs);

    int rs_len = rs.length() + 1;
    char rxed[rs_len];
    rs.toCharArray(rxed, rs_len);
    
    Serial.print("[");
    Serial.print(rxed[0]);
    Serial.print("]");
    Serial.println(rxed[1]);
  }
}

И из-за того что разбор посимвольный, в мониторе порта я получаю
0 0
[0] 
0 1
[0] 
1 2
[1]
  • Вопрос задан
  • 70 просмотров
Решения вопроса 1
@TjmaMine Автор вопроса
Смог найти в интернете:
void bt_tick() {
  if (bluet.available()) {
    String rs = bluet.readString();
    Serial.println(rs);

    int x;
    int index = 0;
    String rxed[2];
    int i;
    for (i=0;i<2;i++) {
      index = rs.indexOf(' ');
      rxed[i] = rs.substring(0, index);
      rs = rs.substring(index+1);
    }
    
    Serial.print("[");
    Serial.print(rxed[0]);
    Serial.print("]");
    Serial.println(rxed[1]);
  }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы