Связь Android OTG (UsbSerial lib) с Arduino: чтение странных байтов - PullRequest
0 голосов
/ 08 июня 2018

В настоящее время я работаю над проектом с Android, Firebase и Arduino, где я хочу отправить UID из проекта FireBase в мое arduino (после регистрации нового пользователя), чтобы я мог записать его в MIFAREтег с использованием MFRC522.Я делаю это с помощью USB OTG кабеля.Для отправки строки UID в arduino я использую эту [UsbSerial Library] [1, которую я нашел в этом посте:

https://www.allaboutcircuits.com/projects/communicate-with-your-arduino-through-android/

Соединение с Arduino работает и при отправкеUID из приложения показывает строку UID, которую я только что отправил. Однако, когда я читаю тег, он показывает строку, подобную этой:

⸮J⸮⸮⸮-⸮Zz⸮⸮Z /m⸮) h⸮1 = # ⸮⸮⸮⸮ =? ⸮

Когда я вручную записываю строку UID на последовательный монитор, кажется, что он работает нормально, потому что, когда я читаю тег, он показывает мне правильныйСтрока UID, например:

IaxeEXNUpRUhqfbyW78LtyoRbQw1

Они имеют одинаковый размер.Итак, что-то идет не так при выполнении следующего кода в Arduino:

   byte buffer[28];


if(Serial.available()>0)  
      { 
    Serial.readBytes(buffer, 28); //UID is 28 bits long
    }

В Android я отправляю строку следующим образом:

public void SendUID(String s){
        byte[] bytesOut = s.getBytes();
        serialPort.write(bytesOut   );
        tvAppend(textView, "\nData Sent : " + uid + "\n");
    }

Кто-нибудь знаком с этой проблемой?

спасибо.

PS: Это мой первый пост, так что извините, если я не достаточно ясен

1 Ответ

0 голосов
/ 13 июня 2018

Использовать 64-байтовый буфер.Проверьте, одинаковы ли скорости передачи данных от андроида и приема на Arduino.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...