Xamarin的问题.安卓应用程序,通过USB与FTDI光学探针通信

本文关键字:FTDI 通信 USB 通过 问题 应用程序 Xamarin | 更新日期: 2023-09-27 17:58:57

我正在尝试实现Xamarin。必须通过USB (FTDI chip)与光学探针通信的Android应用程序
我试着:

  1. 使用Xamarin创建一个java库绑定项目,以c#等效形式转换D2XX.jar,但没有成功
  2. 我们已经尝试翻译这个java指令的c参数联系ControlTransfer(0x040、0x03、0x809c、0、null、0、5000)。在C#中,我找到了除第一个参数外的所有参数。在c#ControlTransfer中,接受枚举USBAddressing作为第一个参数,它不包含值为0x040或64的元素。有没有人尝试过以同样的java方式使用controlTransfer?如何将0x040转换为Xamarin UsbAddressing元素

提前,非常感谢

Xamarin的问题.安卓应用程序,通过USB与FTDI光学探针通信

您可以将数字强制转换为UsbAddressing。现在,这是唯一的方法,如何做到这一点,并建议的方式(我正在与xamarin的支持聊天)。我也遇到了同样的问题,这项工作对我来说是:

 UsbDeviceConnection.ControlTransfer((UsbAddressing)64, 0, 0, 0, null, 0, 0);// reset  mConnection.controlTransfer(0×40, 0, 1, 0, null, 0, 0);//clear Rx
UsbDeviceConnection.ControlTransfer((UsbAddressing)64, 0, 1, 0, null, 0, 0);// clear Rx
UsbDeviceConnection.ControlTransfer((UsbAddressing)64, 0, 2, 0, null, 0, 0);// clear Tx
UsbDeviceConnection.ControlTransfer((UsbAddressing)64, 3, 26, 0, null, 0, 0);// baudrate  57600 115200-0x001A-26, 9600-0x4138-16696, 19200-0x809C-32924, 230040-0x000D-13
UsbDeviceConnection.ControlTransfer((UsbAddressing)64, 2, 0, 0, null, 0, 0);// flow  control none                                                            
UsbDeviceConnection.ControlTransfer((UsbAddressing)64, 4, 8, 0, null, 0, 0);// data bit  8, parity  none,  stop bit 1, tx off

在我的cas中,我在hexa 0x001A和int 26 中使用baudrate 115200

如果仍然有问题,请告诉我。