为什么Java从串口读取这么慢?

时间:2016-05-27 09:41:54

标签: java time serial-port port execution

所以我使用SerialPort类从串行设备读取数据。我的代码如下所示。我研究了一下,发现串行数据以100kb /秒的速度读取。因此,根据这一点,我的程序必须在2秒内读取数据,因为我已经调用了readHexString函数,其中200000作为参数,因此读取200000字节,我只想知道为什么读取数据需要花费很多时间连续?

serialPort.openPort();
        serialPort.setParams(SerialPort.BAUDRATE_57600, 
                             SerialPort.DATABITS_8,
                             SerialPort.STOPBITS_1,
                             SerialPort.PARITY_NONE);


        int count = 0;
        String data = serialPort.readHexString(200000);

1 个答案:

答案 0 :(得分:2)

你不能假设100kb /秒

D=Bd*o/(o+d)

2000000字节导致34,722秒

我想询问您的设备是否连续发送数据?您的代码读取200.000字节。所以你必须等到缓冲区已满。您可以尝试循环较少量的数据,并在达到标记时中断。