java - java读取串口的问题

标签 java core

我正在用 Java 从串行端口读取数据,但我没有获得完整的数据,它会分成十个。

示例:

如果目标设备写入datas_ok,那么我第一次读取时会得到datas_,第二次读取时会得到ok

case SerialPortEvent.DATA_AVAILABLE:

                try {
                    while (inputStream.available() > 0) {
                        numBytes = inputStream.available();
                        readBufferArray = new byte[numBytes];
                        // int readtheBytes = (int) inputStream.skip(2);
                        int readBytes = inputStream.read(readBufferArray);

                        one = new String(readBufferArray);
                        System.out.println("readBytes " + one);

                        handleFlashResponse(one);

                    }
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

出了什么问题?

最佳答案

从描述来看,听起来您的读取速度比发送数据的速度快。这个是正常的。如果您从端口读取数据,但那里什么也没有,那么您需要继续尝试(除非您可以调用阻塞读取)。

关于java - java读取串口的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/633392/

相关文章:

Java 矩阵和数值

java - Autocloseable 类不调用默认关闭方法

java - 是否可以使用反射 API 或其他一些东西在运行时访问方法的局部变量?

x11 - XIO:由32位libxcb导致的致命IO错误11

java - Swing - 如何制作具有不透明内容的透明 JFrame?

java - 使用按钮启动和停止线程

ios - 使 CMTime 具有很小的值

C 突然弄乱了二维数组中的值

java - 如何从指定位置获取附件并将​​其存储到文件系统?