qq_37709473
2017-11-06 09:41
采纳率: 0%
浏览 2.2k

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条回答 默认 最新

  • qq_37709473 2017-11-06 10:08

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

    打赏 评论

相关推荐 更多相似问题