1、下载64位rxtx for java 链接:http://fizzed.com/oss/rxtx-for-java

2、下载下来的包解压后按照说明放到JAVA_HOME即JAVA的安装路径下面去

3、在maven的pom.xml下添加

org.rxtx

rxtx

2.1.7

4、串口API

CommPort:端口的抽象类

CommPortIdentifier:对串口访问和控制的核心类

SerialPort:通过它可以直接对串口进行读、写及设置工作

5、列出本机可用端口

Enumeration em = CommPortIdentifier.getPortIdentifiers();

while (em.hasMoreElements()) {

String name = em.nextElement().getName();

System.out.println(name);

}

6、一般步骤:打开串口得到串口对象==》设置参数==》对串口进行读写==》关闭串口,其中对串口进行读操作比较常用

//打开串口

CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier("COM4");//COM4是串口名字

CommPort commPort = portIdentifier.open("COM4", 2000); //2000是打开超时时间

serialPort = (SerialPort) commPort;

//设置参数(包括波特率,输入/输出流控制,数据位数,停止位和齐偶校验)

serialPort.setSerialPortParams(9600,

SerialPort.DATABITS_8, SerialPort.STOPBITS_1,

SerialPort.PARITY_NONE);

//监听串口事件

serialPort.addEventListener(new Abc()); //Abc是实现SerialPortEventListener接口的类,具体读操作在里面进行

// 设置当有数据到达时唤醒监听接收线程

serialPort.notifyOnDataAvailable(true);

// 设置当通信中断时唤醒中断线程

serialPort.notifyOnBreakInterrupt(true);

// in.close(); //关闭串口

Abc类内容,即读串口的具体操作:

public class Abc implements SerialPortEventListener {

public void serialEvent(SerialPortEvent arg0) {

// TODO Auto-generated method stub

//对以下内容进行判断并操作

/*

BI -通讯中断

CD -载波检测

CTS -清除发送

DATA_AVAILABLE -有数据到达

DSR -数据设备准备好

FE -帧错误

OE -溢位错误

OUTPUT_BUFFER_EMPTY -输出缓冲区已清空

PE -奇偶校验错

RI - 振铃指示

*/

//switch多个,if单个

if (arg0.getEventType() == SerialPortEvent.DATA_AVAILABLE) {

try {

InputStream in = null;

byte[] bytes = null;

in = App.serialPort.getInputStream();

int bufflenth = in.available();

while (bufflenth != 0) {

// 初始化byte数组为buffer中数据的长度

bytes = new byte[bufflenth];

in.read(bytes);

System.out.println(new String(bytes));

bufflenth = in.available();

}

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

写操作:

OutputStream out = serialPort.getOutputStream();

out.write(data); //byte[] data;

out.flush();

总结

以上就是本文关于java 串口通信实现流程示例的全部内容,希望对大家有所帮助。如有问题可以随时留言,期待您的宝贵意见。

java rxtx下载_1、下载64位rxtx for java 链接:http://fizzed.com/oss/rxtx-for-java2、下载下来的包解压后按照说明放到JAV...相关推荐

  1. java 1.9环境配置_jdk1.9下载|jdk1.9 64位下载官方版 附安装配置教程 - 欧普软件下载...

    jdk1.9刚发布,小编为您带来的最新版本下载,新增简化进程api.代码可以分段缓存.增加轻量级json api等功能,为您的java开发提供更多的便利,此版本是64位系统用户打造的,需要的朋友赶快来 ...

  2. windows远程桌面管理工具下载_vnc viewer 64位下载,3步实现vnc viewer 64位下载

    因为工作原因,所以经常会使用vnc viewer软件,但由于电脑版本问题,所以很多时候都需要下载64位vnc viewer软件,那如何下载vnc viewer 64位软件呢?现在,让小编教你如何3步实 ...

  3. python电脑下载教程-电脑64位怎么下载python

    电脑64位怎么下载python? 1. 打开python下载链接https://www.python.org/downloads/,点击自己想要的版本. 2. 我想下载python最新版本3.7.4, ...

  4. php libmcrypt.dll下载,libmcrypt.dll 64位下载|

    libmcrypt.dll是一个重要的dll文件,有网友说下载的php没有libmcrypt.dll,文件怎么也打不开!不必担心,只是php中缺少libmcrypt.dll文件,重新下载一个libmc ...

  5. 在Windows 7 Ultimate 64位上安装Java

    Recently I bought a new desktop system and installed Windows 7 Ultimate 64-bit on it. Being a Java D ...

  6. 64位JVM的Java对象头详解

    关注"Java艺术"一起来充电吧! 我们编写一个Java类,编译后会生成.class文件,当类加载器将class文件加载到jvm时,会生成一个Klass类型的对象(c++),称为类 ...

  7. [Java JVM] Hotspot GC研究- 64位引用指针压缩技术

    为什么需要指针压缩 在上一篇文章 [Java JVM] Hotspot GC研究- 开篇&对象内存布局 中介绍对象内存布局时, 曾提到过, 由于在64位CPU下, 指针的宽度是64位的, 而实 ...

  8. 3.在slave1机器下载3个安装包解压后,复制给master机器

    务必:从机器slave1或者slave2中下载下面三个安装包 一.在slave1机器上下载下面三个安装包 jdk-8u111-Linux-x64.tar.gz 下载地址:http://www.orac ...

  9. jdk安装包解压后如何安装(jdk下载安装)

    1.找到"解压到"按钮,一般解压到压缩包所在的位置就行,点"确定"2.解压后,找到这个文件夹,并在里面找到"**.setup"的文件(一般文 ...

  10. 我下载的mysql解压后没有安装_mysql 解压版安装配置方法教程

    1.首先,你要下载MySQL解压版,下载地址 虽然mysql都有8.0了,但这里我要安装的是mysql5.7,其他版本方法类似 2.解压安装包,根据自己的喜好选择路径,我选择的路径是D盘,因此MySQ ...

最新文章

  1. 使php支持mbstring库以及使用
  2. python常用数据结构_Python入门: 数据结构大汇总
  3. 不重启的情况下linux系统安装中文包生效
  4. (转载) Linux IO模式及 select、poll、epoll详解
  5. mongodb身份验证_MongoDB身份验证
  6. 8-18-Exercise
  7. 操作 mysql 不生成日志_详解MySQL的日志
  8. 错误: 非法字符: ‘\ufeff‘ 解决方案
  9. linux 永久添加路由表,Linux 添加永久静态路由的方法
  10. STDN:Scale-Transferrable Object Detection 论文解析
  11. android apk结构,APK文件结构详解
  12. Boost.Asio的使用技巧
  13. 什么是鸭子类型(duck typing)
  14. Kali学习 | 无线渗透:7.5 Gerix 破解 WEP
  15. go IO操作-文件读
  16. LINUX系统开机后出现assuming drive cache:write through的办法
  17. 简述计算机程序执行过程,计算机程序的执行过程
  18. 林亦杉厦门大学计算机学院,挥别厦大,点燃未来-厦门大学计算机科学系
  19. response.reset() 与response.resetbuffer使用场景
  20. HDU 2544 最短路(最短路入门)

热门文章

  1. win7下强制结束进程的cmd命令
  2. MATLAB 符号函数变量替换为常量
  3. rs485全双工中只接一组_RS485通讯的正确接线方式
  4. Java zip文件加注释_java.util.zip.ZipEntry.setComment(String comment)方法示例
  5. 基于PYNQ-Z2的手写数字识别卷积加速器设计【持续更新】
  6. gauscoor软件怎么用_高斯坐标经纬度转换器
  7. AutoCad 批量打印
  8. AUTOCAD Study
  9. Eastfax使用技巧
  10. 解决matlab2019b中文乱码问题