Serial.read не передаёт символ завершения строки. Симулятор Circuits в Tinker CAD.
- Войдите на сайт для отправки комментариев
Вс, 26/11/2017 - 14:22
Необходимо получить некое число от пользователя в виде строки, затем преобразовать её в float, дабы после использовать в вычислениях. Проблема в том, что нужно всё это сделать на эмуляторе Tinker CAD. В нём есть эмуляция Serial Port, но почему-то Serial.read() не считывает символ завершения строки при нажатии ENTER. Я пробовал сравнивать и по кодам в ASCII - результат тот же, сообщение "VIZHU" не выводится. Так же дебаггер показывает, что X принимает значение последнего введёного символа, отличного от символа завершения строки. Это проблема конкретного эмулятора или я что-то делаю не так? Вот код простой проверки на распознавание нажатия ENTER, который не работает.
char x; void setup() { Serial.begin(9600); } void loop() { if(Serial.available()>0) x=Serial.read(); if(x=='\n' || x == '\r') Serial.print("VIZHU"); }
При вводе числа 56 и нажатии кнопки "Enter" дебаггер показывает, что переменная x хранит последний символ '6', а не '\n' или '\r'.
Поэтому я не могу отследить конец строки и банально вывести её на экран правильно, используя например условие
Пожалуйста помогите.
Ну а терминал как настроен? Указано что надо добавлять \r\n? Может их там нет, потому-что вы их не шлете?
Терминал вообще нельзя настроить. Это эмулятор от Autodesk в браузере с кнопочкой Send.
Терминал вообще нельзя настроить. Это эмулятор от Autodesk в браузере с кнопочкой Send.
Вероятно, сериал-монитор эмулятора не отсылает этих символов. Чтобы не отказываться от эмулятора - могу посоветовать придумать свой символ окончания строки и передавать его после данных. А потом, в коде для реального ардуино - поменяете этот свой символ на \r или \n
Терминал вообще нельзя настроить. Это эмулятор от Autodesk в браузере с кнопочкой Send.
Он устанавливается на локальную машину или в инете только доступен? Если первое - можно поправить эмулятор :)