我正在用 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/