РЕШИТЬ:Преобразование буфера символов в целое число (Arduino)
Вы можете изменить буфер обугленного с помощью:
char *arg;
arg = SCmd.next();
int i;
sscanf(arg, "%d", &i);
Serial.print("String value ");
Serial.println(arg);
Serial.print("Integer value ");
Serial.println(i);
ПРОБЛЕМА:
Я не могут понять, как изменить содержимое буфера символов на целое число из сохраненной строки.
Например:
'1' должен быть 1,
'121' должен быть 121
Вот что я пытался.
void doIt()
{
char *arg;
arg = SCmd.next(); // Get the next argument from the SerialCommand object buffer
if (arg != NULL) // As long as it existed, do it
{
int argInted = (int)arg; // Cast char arg* -> int argInted.
Serial.print("String value ");
Serial.println(arg);
Serial.print("Integer value ");
Serial.println(argInted); // Print this new found integer.
}
else {
Serial.println("Fix your arguements");
}
}
Вот что я получаю, он оценивает 371 каждый раз. Я храню разные вещи в буфере указателя, хотя любые идеи о том, как конвертировать?
Arduino Ready
> INPUT 1
String value 1
Integer value 371
> INPUT 2
String value 2
Integer value 371
> INPUT WHATSthisDO
String value WHATSthisDO
Integer value 371
http://stackoverflow.com/questions/10204471/convert-char-arra y-to-a-int-number-in-c – Pavel
Это не то, как вы конвертируете символ 'char *' в 'int'. – WhozCraig
попробуйте выполнить печать на stdout в дополнение к последовательному порту, чтобы вы могли исключить любые проблемы с подключением. – Pavel