我正在使用http://www.ftdichip.com/Android.htm的官方驱动程序
03-20 13:37:52.359:warn/ftdi(4453):读取开始
03-20 13:37:52.359:warn/ftdi(4453):6字节可用
03-20 13:37:57.960:警告/ftdi(4453):读取0字节
03-20 13:37:57.960:warn/ftdi(4453):读取完成
其源代码很简单:

public int read(byte[] buffer, int timeout) throws IOException {
    Log.w(TAG, "read starting");
    try {
        Log.w(TAG, device.getQueueStatus() + " bytes available");
        int read = device.read(buffer);
        Log.w(TAG, read + " bytes read");
        return read;
    } finally {
        Log.w(TAG, "read finished");
    }
}

他们的支持部门一周后也没有回复我。我在android 4.0.4上,有一个基于arduino duemilanove ftdi的板。

最佳答案

是的,我做到了。
要读取传入数据,必须遵循以下操作:
打开后调用restartintask()
读取前获取可用的输入字节
只读(如果可用字节数>0)
工作代码段:

public int read(byte[] buffer, int timeout) throws IOException {
        params.setReadTimeout(timeout);
        Log.w(TAG, "read starting");
        try {
            int available = device.getQueueStatus();
            Log.w(TAG, available + " bytes available");

            if (available <= 0)
                return 0;

            int read = device.read(buffer, available, timeout);
            Log.w(TAG, read + " bytes read");
            return read;
        } finally {
            Log.w(TAG, "read finished");
        }
    }

关于android - 官方FTDI android驱动程序read()无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15518214/

10-10 09:44