java基于jssc串口包从串行端口读取数据

该代码示例展示了如何使用JavaSerialPort库进行串口通信。程序首先列出可用的串口,然后打开并配置com2端口,设置波特率、数据位、停止位和校验位。接着,它创建了一个PortReader类来监听接收到的数据,并发送一个S字符。当接收到数据时,PortReader会打印接收到的响应。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


package serial;

import jssc.*;

public class Serial {

public static void main(String[] args) {
    String[] portNames = null;
    portNames = SerialPortList.getPortNames();
    for (String string : portNames) {
        System.out.println(string);
    }

    if (portNames.length == 0) {
        System.out.println("There are no serial-ports");
    } else {

        SerialPort serialPort = new SerialPort("com2");
        try {
            serialPort.openPort();

            serialPort.setParams(SerialPort.BAUDRATE_9600,    SerialPort.DATABITS_8, SerialPort.STOPBITS_1,
                    SerialPort.PARITY_NONE);
            serialPort.setFlowControlMode(SerialPort.FLOWCONTROL_RTSCTS_IN | SerialPort.FLOWCONTROL_RTSCTS_OUT);

            PortReader portReader = new PortReader(serialPort);

            serialPort.addEventListener(portReader, SerialPort.MASK_RXCHAR);

            serialPort.writeString("S");

            serialPort.closePort();
        } catch (Exception e) {
            System.out.println("There are an error on writing string to port т: " + e);
        }
    }
}
}

package serial;

import jssc.SerialPort;
import jssc.SerialPortEvent;
import jssc.SerialPortEventListener;
import jssc.SerialPortException;

public class PortReader implements SerialPortEventListener {

SerialPort serialPort;
public PortReader(SerialPort serialPort) {
    this.serialPort = serialPort;
}

@Override
public void serialEvent(SerialPortEvent event) {
    System.out.println("started");
    if (event.isRXCHAR() && event.getEventValue() > 0) {
        try {
            String receivedData = serialPort.readString(event.getEventValue());
            System.out.println("Received response: " + receivedData);
        } catch (SerialPortException ex) {
            System.out.println("Error in receiving string from COM-port: " + ex);
        }
    }
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值