在Java中通过14400波特率的组件进行通信-串行通信

在Java中通过14400波特率的组件进行通信-串行通信,java,serial-port,rxtx,baud-rate,javax.comm,Java,Serial Port,Rxtx,Baud Rate,Javax.comm,希望在这里找到解决办法 我有一个控制器,它通过UART使用特定于应用程序的协议,该协议仅在14400 bps下工作 我必须使用java代码通过串行端口与该控制器通信 但是我发现我使用的API不支持14400波特率,尽管他们称之为标准 我试着使用javax.comm和rxtxjar。没有真正的hel,因为它们都不支持此波特率 在这方面,谁能帮我一个忙,那将是非常有帮助的 谢谢 好的,这是代码片段 selectedPort = (SerialPort) portID.open("Fl

希望在这里找到解决办法

我有一个控制器,它通过UART使用特定于应用程序的协议,该协议仅在14400 bps下工作

我必须使用java代码通过串行端口与该控制器通信

但是我发现我使用的API不支持14400波特率,尽管他们称之为标准

我试着使用javax.comm和rxtxjar。没有真正的hel,因为它们都不支持此波特率

在这方面,谁能帮我一个忙,那将是非常有帮助的

谢谢

好的,这是代码片段

        selectedPort = (SerialPort) portID.open("FlashProgramming",
                TIMEOUT);
        System.out.println("port " + selectedPort + " is opened");



    try {

        selectedPort.setSerialPortParams(14400,
                SerialPort.DATABITS_8, SerialPort.STOPBITS_1,
                SerialPort.PARITY_NONE);
//此处尝试将波特率设置为14400,但正在回滚到9600,不支持默认值14400

    }


    // no handshaking or other flow control
    try {
        selectedPort.setFlowControlMode(SerialPort.FLOWCONTROL_NONE);
    } catch (UnsupportedCommOperationException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

    // timer on any read of the serial port
    try {
        selectedPort.enableReceiveTimeout(TIMEOUT);
    } catch (UnsupportedCommOperationException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

    System.out.println("Comport Configeration is done");

    try {

        Serialdriver.in = selectedPort.getInputStream();
        Serialdriver.out = selectedPort.getOutputStream();

        System.out.println("i/p & o/p's are initialized");

        Serialdriver.handlerParamselScreen.displaystatus("Seleted Com port "
                + selectedPort + " is Successfully opened");
    }



        selectedPort.addEventListener(Serialdriver);



    selectedPort.notifyOnDataAvailable(true);


    return selectedPort;

}

这就是解决办法

我将javax.comm中的低级dll替换为rxtx

以下是链接-

最棒的是它支持x32和x64 jre!。将代码从javax.comm移植到rxtx只需5分钟

我希望这是有益的


干杯

没有人确定答案??来吧,伙计们!!你的问题不够清楚。您使用的是哪种API?您得到的异常是什么?您使用的是哪个IDE?同时发布您编写的代码它在Linux上的已知问题:您找到解决方案了吗?是的,将低级dll从javax.comm更改为RXTX,下面是链接-最重要的是,x32和x64位Os/java都支持相同的代码。干杯