0

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

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

4

1 回答 1

-1

是的,您可以通过D2XX驱动程序使用 VCP。查看Java D2xx for Android API 用户手册(也参见 C/C++ Software Application Development D2XX Programmer's GuideFTD2XX Programmer's Guide Version 2.01文档),官方 Android D2XX 示例源代码,尤其是FT2232HTestFragment.java来自它的类:

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();
}

和类似的例子(铃木圭介)。

于 2019-01-11T09:33:24.047 回答