2010-07-07 4 views
0

Я использую эту библиотеку для преобразования float в строку: http://www.arduino.cc/playground/Main/FloatToString?action=sourceblock&ref=1.Float to String Ошибка компиляции Arduino

Это фрагмент кода, где распечатка FLT выглядит как «29,37»:

float flt = tempSensor.getTemperature(); 
    char buffer[25]; 
    char str[20]; 
    Serial.print(floatToString(str, flt, 2, 10)); 

Это должно работать из коробки, но не делает - то, что я сделал скрутить? Это мои ошибки компиляции:

 
.../floatToString.h:11: error: expected primary-expression before ',' token 
.../floatToString.h: In function 'char* floatToString(char*, float, int, int, bool)': 
.../floatToString.h:11: error: default argument missing for parameter 5 of 'char* floatToString(char*, float, int, int, bool)' 
.../floatToString.h:73: error: 'itoa' was not declared in this scope 
.../floatToString.h:89: error: 'itoa' was not declared in this scope 
+0

Я недостаточно осведомлен, чтобы дать вам полное решение, но проблема в том, что вам не хватает параметра для функции 'floatToString' – Earlz

ответ

0

В C++ только все в прошлом параметрам разрешено иметь значение по умолчанию:

BAD rightjustify MUS T имеет значение по умолчанию:

char * floatToString(char * outstr, float value, int places, 
    int minwidth=0, bool rightjustify) { 

OK: значения по умолчанию, последнее или два последних параметр имеет значение по умолчанию

char * floatToString(char * outstr, float value, int places, 
    int minwidth, bool rightjustify) { 

char * floatToString(char * outstr, float value, int places, 
    int minwidth, bool rightjustify=false) { 

char * floatToString(char * outstr, float value, int places, 
    int minwidth=0, bool rightjustify=false) { 

Проверьте заголовок, я думаю, тот, который вы связаны не один вы в настоящее время использовать.

Существует еще один указатель на проблему: ito неизвестен компилятору. Он должен быть в cstdlib, поэтому отсутствует #include <cstdlib>, я бы поместил его в заголовок, потому что это зависит от него.

0

default argument missing for parameter 5 of 'char* floatToString(char*, float, int, int, bool)

Похоже, что вы не нашли значение: floatToString(str, flt, 2, 10)

Попробуйте добавить True или False до конца там

+0

У этого есть значение по умолчанию' false' – jdehaan

+0

Ну, тогда я думаю, что это то, что должен идти туда ... –

0

У меня было такое же сообщение об ошибке; оказалось, что я включил «floatToString.h» дважды, один раз в мой .ino-файл и один раз в одном из классов, которые я использовал. Я удалил один из них, а затем исчезло (ошибочное) сообщение об ошибке!