Чтение с интерфейса (Serial.read()) в одну строку
- Войдите на сайт для отправки комментариев
Ср, 16/07/2014 - 14:23
Всем привет!
Есть следующий код:
void io_init() { Serial.begin(9600); } void io_loop() { String data = io_read(); if (data != "") { Serial.println(data); } } String io_read() { String io_string = ""; while (Serial.available() > 0) { char io_char = Serial.read(); io_string.concat(io_char); } return io_string; } void io_print(String data) { Serial.println(data); }
В init() выполняется io_init(), а в loop() соответсвенно io_loop(). При передаче на интерфейс текста (например: "тест"), на выходе получаю:
т
е
с
т
То есть, такое впечатление, что из io_read() я получаю лишь один символ, а не всю строку целиком. Подскажите пожалуйста, где я туплю?
Заменил код на следующую конструкцию:
Оказывается есть метод readStringUntil. Помогло. Но честно говоря, хотелось бы всё таки узнать, почему не работал мой первый вариант?
char это у на что массив? или
полный он уже