1

我有一个通过 com 端口连接到 PC 的账单验证器。我尝试向票据验证器发送数据并接收输出(票据验证器通过 ccnet 协议进行通信)这是我的代码 -

public static void main(String[] args) throws SerialPortException {

    String s[]=SerialPortList.getPortNames();
    for (String x :s){
       System.out.print(x);
       SerialPort serialPort=new SerialPort(x);
    }

    try {
        SerialPort serialPort=new SerialPort("COM4");
        serialPort.openPort();
        serialPort.setParams(9600, 8, 1, SerialPort.PARITY_NONE);
        serialPort.writeString("RESET");
        serialPort.setEventsMask(SerialPort.MASK_RXCHAR);
        serialPort.addEventListener(new list());

        System.out.println(serialPort.readBytes(5));
    } catch (SerialPortException sex){
    System.out.print(sex);
    }

串口事件监听器:

private  static class list implements SerialPortEventListener{

    @Override
    public void serialEvent(SerialPortEvent spe) {
        if (spe.isRXCHAR()&&spe.getEventValue()>0){
        try {

            String data =s erialPort.readString(spe.getEventValue());
        } catch (SerialPortException ex) {
        Logger.getLogger(Terminal.class.getName()).log(Level.SEVERE, null, ex);
        }
        }       
}

所以我得到串口异常端口很忙,我该如何解决?

4

1 回答 1

0

大多数情况下这将发生在两种情况下: 1-您分配了错误的端口,可能是另一个设备,您可以通过设备管理器检查它。2-您之前使用其他软件打开过它,或者您之前的代码运行仍在使用它并且您没有终止它。我在您的代码中看到您首先列出了所有 com 端口,但您并没有从中受益,这似乎是多余的。我建议您删除代码的 try 部分中的所有行,只保留 openport 行并为其他行执行此操作,以查看哪一行给出了异常。

于 2018-09-27T16:25:12.327 回答