Как правильно читать данные с XBee?
- Войдите на сайт для отправки комментариев
Вс, 10/02/2013 - 13:59
Всем привет.
У меня есть два XBee модуля. Один подключен к Arduino Mega (работает как END DEVICE/ROUTER AT), а другой подключен к компьютеру (работает как COORDINTATOR AT).
На ардуино у меня выполняется следующий скетч:
void setup() { Serial.begin(9600); Serial1.begin(9600); } void loop() { if (Serial1.available()) { char incoming = Serial1.read(); Serial.print("Serial1 data: "); Serial.println(incoming); } Serial.println("cycle"); if (Serial.available()) { Serial1.print("Serial data: "); Serial1.println(Serial.read()); } delay(1000); }
Далее, я запускаю скетч, а на компьютере (к которому подключен координатор) записываю в порт данные:
vir@laptop:~$ echo fuck >> /dev/ttyACM1
Результат, я получаю, следующий:
cycle cycle cycle cycle cycle Serial1 data: f cycle Serial1 data: u cycle Serial1 data: c cycle Serial1 data: k cycle Serial1 data: cycle Serial1 data: cycle cycle cycle cycle cycle
Собственно вопрос, почему данные приходят по одному символу, т.е. считываются по одному за цикл (loop)? Почему я не получаю слово целиком? И откуда беруться два пустых символа?
Вс, 10/02/2013 - 15:22
#1
Потому что у вас так написан код.
почему данные приходят по одному символу, т.е. считываются по одному за цикл (loop)? Почему я не получаю слово целиком?
Это уже ворос к люнуксоиду, потому как эти два символа шлет ваша строка vir@laptop:~$ echo fuck >> /dev/ttyACM1, могу только предположить, что это символы перехода на новую строку и возврат каретки.
И откуда беруться два пустых символа?