Как заставить 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);
}
@Kishor Arvind, 👍1
Обсуждение2 ответа
▲ 1
Если это одна цифра:
if (t >= '0' && t <= '9') {
int numeric_value = t - '0';
} else {
// Обработка ошибки ввода.
}
,
@Edgar Bonet
▲ 1
Вы можете использовать альтернативный метод, подобный этому
void setup()
{
Serial.begin(9600);
}
void loop()
{
if(Serial.available()){
String a = Serial.read();
int b = a.toInt();
Serial.println(b);
}
,
@dharmik
Смотрите также:
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Использовать все контакты как цифровые входы/выходы
- Float печатается только 2 десятичных знака после запятой
- Arduino как USB HID
- Serial1' was not declared in this scope
- Очень простая операция Arduino Uno Serial.readString()
- AT-команда не отвечает на последовательный монитор
ваш код не компилируется из-за синтаксической ошибки, @jsotola
Serial.read()
возвращает байт... то, что этот байт означает для вас, не имеет отношения к этому факту., @jsotola