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

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语言,不知道咋办了

    评论

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题