Xamarin.Android应用程序无法通过USB与FTDI光学探头通信

时间:2014-04-18 10:53:25

标签: c# java android xamarin ftdi

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

  1. 使用Xamarin创建一个java库绑定项目,以转换c#等效的D2XX.jar,但没有成功。
  2. 我们尝试翻译此java指令的c#参数 connection.ControlTransfer(0x040,0x03,0x809c,0,null,0,5000)。在C#中,我找到了除第一个之外的所有参数。在c#ControlTransfer中,接受枚举USBAddressing作为第一个参数,它不包含值为0x040和64的元素。 有没有人试图以相同的java方式使用controlTransfer?如何将0x040转换为Xamarin UsbAddressing元素?
  3. 提前,非常感谢

1 个答案:

答案 0 :(得分:0)

您可以将号码转换为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

中使用波特率115200

如果仍有问题,请与我联系。