Serial.read() число целиком
- Войдите на сайт для отправки комментариев
Вс, 25/03/2018 - 16:20
Всем доброго времени суток! Подскажите пожалуйста как прочитать число целиком в переменную int из потока Serial.read()? Если передаю в поток одну цифру "7" то switch отрабатывает нормально, а вот если передаю число "10" то в переменную inByte сохраняется только цифра "1" а цифра "0" теряется:
void setup () { //инициализируем serial порт Serial.begin(57600); } void loop () { / if (Serial.available() > 0) { int inByte = Serial.read(); switch (inByte) { case '7': LINE_COLOR = LINE_BLACK; Serial.println("BL"); break; case '10': LINE_COLOR = LINE_WHITE; Serial.println("WL"); break; } } }
И чо, вот этот код компилируеца?
Мне понравилась эта строка.
19
case
'10'
:
см. Serial.parseInt()
И чо, вот этот код компилируеца?
код компилируется.
Мне понравилась эта строка.
19
case
'10'
:
что не так с этой строкой?
см. Serial.parseInt()
Только не на нашем сайте, а на главном.
https://www.arduino.cc/reference/en/language/functions/communication/ser...
Наш справочник языка уже лет 5 не обновлялся....
см. Serial.parseInt()
так тоже не работает:
В строку 11: Serial.println(inByte); и смотреть на результат в Serial Monitor
что не так с этой строкой?
Открываем любую книжку по языку и читаем что означает одиночная кавычка. И вообще, мля, читаем!!!
так тоже не работает:
И не должен. См. Выше.
В строку 11: Serial.println(inByte); и смотреть на результат в Serial Monitor
результатом является всегда первая цифра числа
В строку 11: Serial.println(inByte); и смотреть на результат в Serial Monitor
результатом является всегда первая цифра числа
Почему же у меня не так?
В строку 11: Serial.println(inByte); и смотреть на результат в Serial Monitor
результатом является всегда первая цифра числа
Почему же у меня не так?
Вообщем искал проблему не там где она должна быть, одна цифра передавалась потомучто была ошибка в функции на ПК которая писала данные в Serial, фактически она писала всегда только один байт.
теперь проблема в другом, не могу сравнить строки, передаю число например "10" в строковую переменную, но условие if(COMMAND=="10") не выполняется в чем может быть проблема?
все что внутри знаков <> пакет. А то что снаружи мусор.
теперь проблема в другом, не могу сравнить строки, передаю число например "10" в строковую переменную, но условие if(COMMAND=="10") не выполняется в чем может быть проблема?
Для сравнения строк equals()
теперь проблема в другом, не могу сравнить строки, передаю число например "10" в строковую переменную, но условие if(COMMAND=="10") не выполняется в чем может быть проблема?
Для сравнения строк equals()
Спасибо, equals помог...
все что внутри знаков <> пакет. А то что снаружи мусор.
qwon спасибо за функцию!!! Я так понял что можно в пакете слать любую команду, а потом парсить.., единственное не понял что делает кусок кода
Буду благодарен за объяснение.
А эта строка отсекает лишние знаки . Входят толькл от пробела до скобки
А эта строка отсекает лишние знаки . Входят толькл от пробела до скобки
Большое спасибо, теперь все понятно!