JAVA串口编程

本文介绍了如何利用RXTX库在JAVA中实现串口编程,包括RXTX库的下载、动态链接库配置,以及解决可能出现的 UnsatisfiedLinkError 错误。同时,文章还提到了将RXTXcomm.jar添加到工程中,并封装了串口参数类SerialPortParameter和串口工具类SerialPortUtil,最后通过SerialPortUtilTest类进行测试。
摘要由CSDN通过智能技术生成

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;
	
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值