Android UsbConnection.bulkTransfer() работает, но UsbConnection.controlTransfer всегда возвращает -1

Я отправляю информацию на Arduino Nano с устройства Android. bulkTransfer возвращает правильное значение (длина передаваемых данных), но Arduino получает странные значения. Я думаю, это потому, что скорость передачи Arduino (9600) отличается от скорости передачи, которую передает Android, но я не могу найти способ узнать, какое это значение.

Поэтому я попытался позвонить controlTransfer установить скорость передачи в Android, но controlTransfer всегда возвращает -1. Я не понимаю почему bulkTransfer работает но controlTransfer выходит из строя.

Я использую этот код:

public int sendData(byte[] nbyte) throws IOException, NullPointerException {
  if(nbyte == null) throw new NullPointerException("nbyte cannot be null");
  int result = this.usbDeviceConnection.controlTransfer(0x40, 0, 0, 0, null, 0, 0);// reset
  result = this.usbDeviceConnection.controlTransfer(0x40, 0, 1, 0, null, 0, 0);// clear Rx
  result = this.usbDeviceConnection.controlTransfer(0x40, 0, 2, 0, null, 0, 0);// clear Tx
  result =  this.usbDeviceConnection.controlTransfer(0x40, 0x03, 0x4138, 0, null, 0, 0);
  int len = this.usbDeviceConnection.bulkTransfer(this.usbEndpoint, nbyte, nbyte.length, 5000);
  if(len == -1) throw new IOException("Bulktransfer failed");
  return len;
}

0 ответов

Другие вопросы по тегам