有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java InputStream从串行端口读取数据

从串行端口读取数据时出现问题。我的代码是这样的:

 case SerialPortEvent.DATA_AVAILABLE:
        try {
            int numBytes = 0;
            while ((numBytes = inputStream.read(readBuffer)) >= 0){
                //Some code to process data
            }
        } catch (IOException e){
            System.out.println(e.getMessage());
        }
        break;

传入的包很小,大小不同-5、7、13字节。波特率为57600。在真实环境中,每秒有3-4个包

问题是:

  • 当我使用javax.comm, read()时,方法返回字节数组readBytes,其中忽略值为0的字节。read()方法不读取零
  • 当我使用RXTX, numBytes时,它的值是正确的(读取整个包),但只有在readBytes[0]中才有值

所以,我完全陷入困境,不知道发生了什么,也不知道在哪里找到解决方案

谁能至少给我一个解决这个问题的提示吗


共 (0) 个答案