Получение данных с ком порта
- Войдите на сайт для отправки комментариев
Втр, 16/01/2018 - 12:34
Добрый день! есть некая программна на компьютере которая отпавляет в com порт команды вот такого вида FF 01 01, у меня ни как не получается их обработать в ардуино , нужно просто сделать если прила эта команда то выполнить условие вот код
byte val ; // the setup function runs once when you press reset or power the board void setup() { // initialize digital pin 13 as an output. pinMode(13, OUTPUT); Serial.begin(9600); } // the loop function runs over and over again forever void loop() { if (Serial.available() > 0) { val = Serial.read(); String myStr = String(val); if (myStr=="FF 01 01") digitalWrite(13,HIGH); if (myStr=="FF 01 00") digitalWrite(13,LOW); Serial.println(val); } }
В 12-ой строке Вы читаете 1 (один) байт, а затем в строке 14 сравниваете его со строкой "FF 01 01", состоящей из 8 (восьми) байтов. И Вы всерьёз рассчитываете, что они могут быть равны друг другу?
Навскидку:
Спасибо работает! но можете поснить для чего нужен вот этот код
Спасибо работает! но можете поснить для чего нужен вот этот код
для того чтоб исправить ту вашу ошибку, о которой вам написали в ответе #1.
Почучается он обнулет массив?
вот код который у меня получился и работает
Спасибо работает! но можете поснить для чего нужен вот этот код
Этот код перемещает массив в голову на 1 байт. Нужен для того, чтобы гарантированно в приходящем потоке байт выловить последовательность из ваших трёх байт, когда бы устройство ни включилось в прослушку потока.