Bootstrap

JAVA串口编程

RXTX库实现JAVA串口编程

  • 首先下载RXTX库对应的资源文件,对应的地址为 http://fizzed.com/oss/rxtx-for-java

  • Windows 32位系统:mfz-rxtx-2.2-20081207-win-x86

  • Windows64位系统:mfz-rxtx-2.2-20081207-win-x64

  • 配置动态链接库
    – 拷贝 rxtxSerial.dll到%JAVA_HOME%\jre\bin
    – 拷贝 rxtxParallel.dll 到%JAVA_HOME%\jre\bin

  • 运行过程中抛出 java.lang.UnsatisfiedLinkError 错误或 gnu.io 下的类找不到时,将rxtx解压包中的 rxtxParallel.dll,rxtxSerial.dll 这两个文件复制到C:\Windows\System32 目录下可解决该错误


RXTXcomm.jar拷贝到工程

在这里插入图片描述


串口参数封装类:SerialPortParameter

package com.ycom.serialport;

import gnu.io.SerialPort;

/**
 * 串口参数封装类
 * @author Administrator
 *
 */
public class SerialPortParameter {
   
	/**
     * 串口名称(COM1、COM2、COM3等等)
     */
    private String serialPortName;
    
    /**
     * 波特率
     * 默认:9600
     */
    private int baudRate;
    
    /**
     * 数据位 
     * 可以设置的值:SerialPort.DATABITS_5、SerialPort.DATABITS_6、SerialPort.DATABITS_7、SerialPort.DATABITS_8
     * 默认:SerialPort.DATABITS_8
     */
    private int dataBits;
    
    /**
     * 停止位
     * 可以设置的值:SerialPort.STOPBITS_1、SerialPort.STOPBITS_2、SerialPort.STOPBITS_1_5
     * 默认:SerialPort.STOPBITS_1
     */
    private int stopBits;
    
    /**
     * 校验位
     * 可以设置的值:SerialPort.PARITY_NONE、SerialPort.PARITY_ODD、SerialPort.PARITY_EVEN、SerialPort.PARITY_MARK、SerialPort.PARITY_SPACE
     * 默认:SerialPort.PARITY_NONE
     */
    private int parity;
    
    /**
     * 默认参数:
     *  波特率:9600
     * 	数据位:8位
     * 	停止位:1位
     * 	校    验:无
     * @param serialPortName 串口名称, "COM1"、"COM2"
     */
    public SerialPortParameter(String serialPortName) {
   
        this.serialPortName = serialPortName;
        this.baudRate = 9600;
        this.dataBits = SerialPort.DATABITS_8;
        this.stopBits = SerialPort.STOPBITS_1;
        this.parity = SerialPort.PARITY_NONE;
    }
    
    /**
     * 默认参数:
     * 	数据位:8位
     * 	停止位:1位
     * 	校    验:无
     * @param serialPortName 串口名称, "COM1"、"COM2"
     * @param baudRate 波特率
     */
    public SerialPortParameter(String serialPortName, int baudRate) {
   
        this.serialPortName = serialPortName;
        this.baudRate = baudRate;
        this.dataBits = SerialPort.DATABITS_8;
        this.stopBits = SerialPort.STOPBITS_1;
        this.parity = SerialPort.PARITY_NONE;
    }

	public String getSerialPortName() {
   
		return serialPortName;
	}

	public void setSerialPortName(String serialPortName) {
   
		this.serialPortName = serialPortName;
	}

	public int getBaudRate() {
   
		return baudRate;
	}

	public void setBaudRate(int baudRate) {
   
		this.baudRate = baudRate;
	}

	public int getDataBits() {
   
		return dataBits;
	}

	public void setDataBits(int dataBits) {
   
		this.dataBits = dataBits;
	}

	public int getStopBits() {
   
		return stopBits;
	}

	public void setStopBits(int stopBits) {
   
		this.stopBits = stopBits;
	
;