Как заставить Serial.read() возвращать целое число вместо значения ascii?

Я хочу, чтобы функция Serial.read() возвращала целое число вместо значения ASCII. Например, в приведенном ниже коде, если я ввожу 2, я хочу, чтобы на выходе было 2 вместо 50

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

void loop(){
    if(Serial.available()){
    int t = Serial.read();
    Serial.println(t);
}

, 👍1

Обсуждение

ваш код не компилируется из-за синтаксической ошибки, @jsotola

Serial.read() возвращает байт... то, что этот байт означает для вас, не имеет отношения к этому факту., @jsotola


2 ответа


1

Если это одна цифра:

if (t >= '0' && t <= '9') {
    int numeric_value = t - '0';
} else {
    // Обработка ошибки ввода.
}
,

1

Вы можете использовать альтернативный метод, подобный этому

void setup()
{
Serial.begin(9600);
}
void loop()
{
 if(Serial.available()){
    String a = Serial.read();
    int b = a.toInt();
    Serial.println(b);
}
,