java使用rxtx串口通信配置及简单示例

java使用rxtx串口通信配置及简单示例

1下载

         官方地址:http://rxtx.qbang.org/wiki/index.php/Download,官方下载地址中有版本和类型选择,分window和linux等,根据需要下载。

         fizzed网下载地址:http://fizzed.com/oss/rxtx-for-java该资源下载地址网络比官网通畅,其中也有各个版本和类型的选择

 

2配置

         将下载到zip解压,取其中rxtxSerial.dll和 RXTXcomm.jar 文件,拷贝到如下目录中。%JAVA_HOME%表示jdk的安装根目录

                   a.复制rxtxSerial.dll 到%JAVA_HOME%\jre7/bin/

                   b.复制RXTXcomm.jar 到%JAVA_HOME% \jre7/lib/ext/

 

3 简单代码示例

package com.supre.idisk.util;

import java.io.IOException;
import java.io.OutputStream;
import javassist.bytecode.ByteArray;
import gnu.io.CommPortIdentifier;
import gnu.io.NoSuchPortException;
import gnu.io.PortInUseException;
import gnu.io.SerialPort;
import gnu.io.UnsupportedCommOperationException;

public class TestRxtx {

	public static final byte[] init = new byte[] { 0x1B, 0x40 };
	public static final byte[] clean = new byte[] { 0x0C };
	public static final byte[] pre_display = new byte[] { 0x1B, 0x51, 0x41 };
	public static final byte[] post_display = new byte[] { 0x0D };

	public static void displayCustomerScreen(String data, byte[] mode) {
		try {
			CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier("COM2"); //串口号
			SerialPort serialPort = (SerialPort) portIdentifier.open("test",5000); //使用者  和 最大响应时长(ms)
			serialPort.setSerialPortParams(115200,  //波特率
					SerialPort.DATABITS_8, 			//校验位
					SerialPort.STOPBITS_1, 			//数据位
					SerialPort.PARITY_NONE);		//停止位
			serialPort.setFlowControlMode(SerialPort.FLOWCONTROL_NONE);			
			try {
				OutputStream outputStream = serialPort.getOutputStream();
				if (mode != null) {
					outputStream.write(mode);
				}
				if (data != null) {
					outputStream.write(pre_display);
					outputStream.write(data.getBytes());
					outputStream.write(post_display);
				}
				outputStream.flush();
				outputStream.close();
			} catch (IOException e) {
				e.printStackTrace();
			} finally {
				serialPort.close();
			}
		} catch (NoSuchPortException e) {
			e.printStackTrace();
		} catch (PortInUseException e) {
			e.printStackTrace();
		} catch (UnsupportedCommOperationException e) {
			e.printStackTrace();
		}
	}

	public static void main(String[] args) {
		displayCustomerScreen(null,"abffff0000010d0a".getBytes());
	}
}

参考博文: http://my.oschina.net/baishi/blog/170014


  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值