Arduino синтаксический анализ строки с использованием sscanf

Здравствуйте, я новичок в программировании на Arduino и C. Я хотел проанализировать строку с помощью функции sscanf

Это моя программа

String hith;
int field1,field2;
float field3;
int F1=0,F2=0;
float F3=0;
int h1,h3;
float h2;

void setup() {
  
  Serial.begin(9600);

}

void loop() {
  field1=5;
  field2=6;
  field3=56.67;
  F1=field1;
  F2=field2;
  F3=field3;

  hith =hith+F1+","+F3+","+F2;
  Serial.println(hith);

sscanf(hith.c_str(),"%d,%f,%d",&h1,&h2,&h3);

Serial.println(h1);
Serial.println(h2);
Serial.println(h3);
  hith="";

  delay(1000);
}

Я могу анализировать только целочисленные значения, но не плавающие точки.

, 👍2

Обсуждение

"%f` не реализован в мире Arduino., @tim


1 ответ


1

На 8-разрядных ардуино поддержка %f из printf и scanf (и связанных с ними функций) была удалена для экономии места.

Вместо этого вам следует проанализировать строку на фрагменты с помощью strtok() и использовать atof() для преобразования соответствующих фрагментов в значения с плавающей запятой.

,