android 多个串口读取数据时有的能读取有的不能读取

//读串口数据线程
private class ReadThread extends Thread {

    @Override
    public void run() {
        super.run();
        while (!isStop && !isInterrupted()) {
            try {
                readMethod(mSerialPort0, 0);
                readMethod(mSerialPort1, 1);
                readMethod(mSerialPort2, 2);
            } catch (Exception e) {

            }
        }
    }
}

private void readMethod(SerialPort serialPort, int index) throws IOException, InterruptedException {
    if (serialPort != null) {
        byte[] buffer = new byte[512];
        int size = serialPort.getInputStream().read(buffer);
        if (size > 1)
            onDataReceived(buffer, size, index);
        Thread.sleep(25);
    }
}

    当只有一个串口时都能正确读数,有多个串口对象时就只有一个能用,另外的怎么试都不能使用,串口都成功初始化,使用时也错开了时间,是不是每个串口都要有一个独立的读取线程?我觉得不需要啊,求大神指点

1个回答

应该是线程阻塞了,这是用的谷歌开源项目android-serialport-api,serialPort.getInputStream().read(buffer)这个read方法导致阻塞的,可惜我不熟悉c语言,不知道咋办了

JonsonBob
JonsonBob 你好我想问一下 现在问题解决了么?
接近 2 年之前 回复
qq_21767381
qq_21767381 哈哈,我也是遇到同样问题,,这两天都在看,纠结啊
大约 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐