我正在尝试使用 FTDI 提供的 Java 类库将 FTDI FT2232H 连接到 Android 应用程序,该类库不需要 root 访问权限。
有没有办法通过这个包使用VCP,而不是旧式的原生驱动路由?或者,如果没有,有没有办法通过它模拟 VCP 接口(或者是否有可能推出我自己的解决方案?)我发现官方文档有点缺乏,因为他们鼓励使用 Java 库而不是原生的,但不要解释它是否提供完整的功能奇偶校验。
我正在尝试使用 FTDI 提供的 Java 类库将 FTDI FT2232H 连接到 Android 应用程序,该类库不需要 root 访问权限。
有没有办法通过这个包使用VCP,而不是旧式的原生驱动路由?或者,如果没有,有没有办法通过它模拟 VCP 接口(或者是否有可能推出我自己的解决方案?)我发现官方文档有点缺乏,因为他们鼓励使用 Java 库而不是原生的,但不要解释它是否提供完整的功能奇偶校验。
是的,您可以通过D2XX驱动程序使用 VCP。查看Java D2xx for Android API 用户手册(也参见 C/C++ Software Application Development D2XX Programmer's Guide和FTD2XX 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(); }