Я использую Arduino UNO R3, и когда я посылаю AT-команду на свой экран GSM через Serial, я получаю все большее число из Serial.available().Arduino Serial.available() продолжает расти
Вот пример, который я использую для отладки:
void loop()
{
Serial.println("AT+CADC?");
delay(3000);
}
void serialEvent()
{
char * sensorValue;
int serial = Serial.available();
Serial.print("-");
Serial.print(serial);
Serial.println("-");
if(serial >0)
{
sensorValue = (char*) malloc(sizeof(char) * (serial +1));
int i;
for(i = 0; i < serial; i++)
{
sensorValue[i] = Serial.read();
//Serial.print(sensorValue[i]);
}
sensorValue[serial+1] = '\0';
Serial.print(sensorValue);
}
delay(2000);
}
В результате я получаю от последовательного монитора является:
-30-
-63
-63-
-63-
...
Почему число байтов доступны начать в 30, а затем максимум на 63? Это происходит даже тогда, когда я использую Serial.read(), который должен потреблять данные в буфере.
РЕДАКТИРОВАТЬ: Добавлено полное contens of serialEvent().
Ваш фрагмент кода не показывает никаких чтений, чтобы результат ожидался. Он подсчитывает байты от ответа модема. –
Хорошо, как я упомянул в конце, результат тот же, что и при чтениях. Я только что отредактировал код, чтобы показать мой полный код, где я читаю. – BOMEz