чтение и разбор Serial
- Войдите на сайт для отправки комментариев
Пт, 20/03/2015 - 00:28
Подскажите, как изменить этот код под мои условия: в serial раз в x секунд приходит строка из 4-х символов (без скрытого символа конца строки), надо по значению 3-го символа присвоить переменной n определенное число. Первый символ - это "r" или "k", второй всегда "0", четывертый всегда "t".
Я из примеров составил такой код, и он даже работает, но он основан на анализе символа конца строки, а мне надо чтобы этот разбор не учитывал конечный символ "\n" - его может и не быть, при этом ничего не работает.
while (Serial.available()) { char x = Serial.read(); if (x != '\n') serialinput += x; else { if (serialinput.substring(0,4) == "r01t") n= 1; if (serialinput.substring(0,4) == "r02t") n= 2; if (serialinput.substring(0,4) == "k03t") n= 3; if (serialinput.substring(0,4) == "k04t") n= 4; serialinput = ""; // очищаем буфер } }
Serial.readBytes(buffer, length)
n = buffer[2]
эм, может n = buffer[2] - 47 ?
эм, может n = buffer[2] - 47 ?
Может, я ж не знаю, как написали так и ответили "надо по значению 3-го символа присвоить"
Тип данных для n не указано. Ну это мелочи, сами поди разберетесь.
А чего бы просто не вычесть '0', а не придумывать всякие 47 (реально это '0'-1, будете потом по граблям прохаживаться и удивляться).