Отправка двоичных данных через uart
- Войдите на сайт для отправки комментариев
Пнд, 05/10/2015 - 10:56
Доброго времени суток.
Подскажите пожалуйста как через arduino 2560 передавать и считывать двоичные данные и выполнить какие то действия например если приняли (0x68,0x00,0x00,0x68) включить пин 13 или перевести в строку и отправить в ком порт 1?
Зараниее спасибо.
Передавать write вместо print, все остальное точно так же.
Здесь передаем а как считывать ? пробовал все не получается подскажите как решить проблемму.
Если в буфере лежит 0x00, то Serial.available() возвращает 0. Могу предложить отправлять преобразованное в строку число через println(), а на принимающей стороне юзать parseInt()
И зачем такое двойное преобразрвание, которое, к тому же в несколько раз увеличивает объем данных и, соответственно, во столько же раз уменьшает эффективную скорость передачи?
Jomei, я не понял, в чем у Вас проблемы.
Во-первых, чем Вы пытаетесь прочитать передаваемые данные?
Если в буфере лежит 0x00, то Serial.available() возвращает 0.
Jomei, я не понял, в чем у Вас проблемы.
Проблема его в том, что не смог найти примера как читать данные
Спасибо за ответы ребята ) проблемма моя в том что я не могу прочитать с помощю ардуинки данные с электросчетчика ПСЧ 4ТМ05М у него Modbus подобный двоичный протокол, у меня есть описание протокола там все коды, как снимать с помощю каких кодов и.т.д но проблемма в другом нужно его научить понимать ардуино.
https://www.google.com/search?q=arduino+Modbus
Не ModBus а ModBus подобный http://www.nzif.ru/modules/myReviews/detailfile.php?lid=148
Если Ардуино пишет двоичные данные, то
Serial.write(byte data);
если текстовые
Serial.print(char data);
если читает двоичные
Serial.read(byte data);
если читает текстовые
Serial.read(char data);
Какие еще нужны примеры?
Не ModBus а ModBus подобный http://www.nzif.ru/modules/myReviews/detailfile.php?lid=148
т.е. до тебя не дошло, что никто за тебя ничего делать не будет?
Я не прошу делать примеры я лишь спросил как это сделать и советы я получил спасибо тем кто ответил.