将FTDI设备作为VCP连接到Android

时间:2018-11-13 00:17:21

标签: java android serial-port ftdi d2xx

我正在尝试使用FTDI提供的Java类库将FTDI FT2232H连接到Android应用程序,而该应用程序不需要root访问权限。

有没有办法通过此软件包使用VCP,而不是旧式的本机驱动程序路由?或者,如果没有,是否有办法通过它来模拟VCP接口(或者完全有可能推出我自己的解决方案?)我发现官方文档有些缺乏,因为他们鼓励使用Java库而不是Java库。本机,但不解释它是否提供完整的功能奇偶校验。

1 个答案:

答案 0 :(得分:-1)

是的,您可以通过D2XX驱动程序使用VCP。看一下Java D2xx for Android API User Manual(以及C / C ++ Software Application Development D2XX Programmer's GuideFTD2XX Programmer’s Guide Version 2.01文档),尤其是FT2232HTestFragment.java类中的Official Android D2XX Example Source code

public void SendMessage(View view) {
    // Do something in response to button
    FT_Device ftDev;
    if( uart_configured_0 == false ) {
          Toast.makeText(DeviceFT2232HTestContext, "UART Port 0 not configured yet...", Toast.LENGTH_SHORT).show();
          return;
      }
      ftDev = ft_device_0;

      if(ftDev.isOpen() == false) {
          Log.e(">>@@","SendMessage: ftDev not open!!!!!!  index: 0");
      } else {
          Log.e(">>@@","SendMessage: ftDev open, index: 0");

/*            Log.e(">>@@","port 0 isn:" + ftDev.deviceInfoNode.iSerialNumber
                  + " bcd:" + ftDev.deviceInfoNode.bcdDevice
                  + " id:" + ftDev.deviceInfoNode.id
                  + " loc:" + ftDev.deviceInfoNode.location
                  + " sn:" + ftDev.deviceInfoNode.serialNumber);
*/        
    }

  ftDev.setLatencyTimer((byte) 16);

  // ftDev.Purge(true, true);

  String writeData = writeText_0.getText().toString();
  byte[] OutData = writeData.getBytes();
  int iLen = ftDev.write(OutData, writeData.length());
  Log.e(">>@@", "Port 0 write Len:" + iLen + " s:" + writeData);
  Toast.makeText(DeviceFT2232HTestContext,
          "Port 0 write Len:" + iLen + " s:" + writeData,
          Toast.LENGTH_SHORT).show();
}

以及that之类的示例(由Keisuke SUZUKI)。