java 串口通信实现流程示例

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

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

3、在maven的pom.xml下添加

  <dependency>
    <groupId>org.rxtx</groupId>
    <artifactId>rxtx</artifactId>
    <version>2.1.7</version>
  </dependency>

4、串口API

  CommPort:端口的抽象类
  CommPortIdentifier:对串口访问和控制的核心类
  SerialPort:通过它可以直接对串口进行读、写及设置工作

5、列出本机可用端口

Enumeration<CommPortIdentifier> 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 串口通信实现流程示例的全部内容,希望对大家有所帮助。如有问题可以随时留言,期待您的宝贵意见。

(0)

相关推荐

  • JAVA中实现原生的 socket 通信机制原理

    本文介绍了JAVA中实现原生的 socket 通信机制原理,分享给大家,具体如下: 当前环境 jdk == 1.8 知识点 socket 的连接处理 IO 输入.输出流的处理 请求数据格式处理 请求模型优化 场景 今天,和大家聊一下 JAVA 中的 socket 通信问题.这里采用最简单的一请求一响应模型为例,假设我们现在需要向 baidu 站点进行通信.我们用 JAVA 原生的 socket 该如何实现. 建立 socket 连接 首先,我们需要建立 socket 连接(核心代码) impor

  • Java网络编程基础篇之单向通信 原创

    在网络编程中如果只要求客户机向服务器发送消息,不要求服务器向客户机发送消息,称为单线通信.客户机套接字和服务器套接字链接成功后,可估计通过输出流发送数据,服务器则通过输入流接受数据,下面是简单的单向通信的例子. 实例1:本实例是一个TCP服务器端程序,在 getserver() 方法中建立服务器套接字,调用getClienMessage()方法获取客户端信息.代码如下: import java.io.BufferedReader; import java.io.IOException; impo

  • 老生常谈Java网络编程TCP通信(必看篇)

    Socket简介: Socket称为"套接字",描述IP地址和端口.在Internet上的主机一般运行多个服务软件,同时提供几种服务,每种服务都打开一个Socket,并绑定在一个端口上,不同的端口对应于不同的服务.Socket和ServerSocket类位于java.net包中.ServerSocket用于服务端,Socket是建立网络连接时使用的.连接成功时,应用程序两端都会产生一个Socket实例,通过操作这个实例完成所需会话. Socket常用方法: -int getLocalP

  • Java Socket实现多线程通信功能示例

    本文实例讲述了Java Socket实现多线程通信功能的方法.分享给大家供大家参考,具体如下: 前面的文章<Java Socket实现单线程通信的方法示例>说到怎样写一个最简单的Java Socket通信,但是文章中的例子有一个问题就是Server只能接受一个Client请求,当第一个Client连接后就占据了这个位置,后续Client不能再继续连接,所以需要做些改动,当Server没接受到一个Client连接请求之后,都把处理流程放到一个独立的线程里去运行,然后等待下一个Client连接请求

  • java实现短信通信的完整教程

    前言 短信信息的发送目前已经是项目中必不可少的部分,我们怎么通过web页面来实现把信息推送到别人手机上呢?简单点,编码的方式简单点!看完本篇文章,以后要实现短信的发送都只需要知道发什么?发给谁?就OK了,代码如下,是不是很简单^_^ String result= "";//返回状态 Note note = new Note(); String Tel = "17089490559";//接收人手机号 String message = "您好!";

  • Java多线程编程实现socket通信示例代码

    流传于网络上有关Java多线程通信的编程实例有很多,这一篇还算比较不错,代码可用.下面看看具体内容. TCP是Tranfer Control Protocol的 简称,是一种面向连接的保证可靠传输的协议.通过TCP协议传输,得到的是一个顺序的无差错的数据流.发送方和接收方的成对的两个socket之间必须建 立连接,以便在TCP协议的基础上进行通信,当一个socket(通常都是server socket)等待建立连接时,另一个socket可以要求进行连接,一旦这两个socket连接起来,它们就可以

  • java 串口通信实现流程示例

    1.下载64位rxtx for java 链接:http://fizzed.com/oss/rxtx-for-java 2.下载下来的包解压后按照说明放到JAVA_HOME即JAVA的安装路径下面去 3.在maven的pom.xml下添加 <dependency> <groupId>org.rxtx</groupId> <artifactId>rxtx</artifactId> <version>2.1.7</version&g

  • java 串口通信详细及简单实例

    java 实现串口通信 最近做了一个与硬件相关的项目,刚开始听说用java和硬件打交道,着实下了一大跳.java也可以操作硬件? 后来接触到是用java通过串口通信控制硬件感觉使用起来还不错,也很方便. 特拿出来和大家一起分享一下. 准备工作: 首先到SUN官网下载一个zip包:javacomm20-win32.zip 其中重要的有这几个文件: win32com.dll comm.jar javax.comm.properties 按照说明配置好环境,如下: 将win32com.dll复制到<J

  • 基于Java编写串口通信工具

    最近一门课要求编写一个上位机串口通信工具,我基于Java编写了一个带有图形界面的简单串口通信工具,下面详述一下过程,供大家参考 ^_^ 一: 首先,你需要下载一个额外的支持Java串口通信操作的jar包,由于java.comm比较老了,而且不支持64位系统,这里推荐Rxtx这个jar包(32位/64位均支持). 官方下载地址:http://fizzed.com/oss/rxtx-for-java (注:可能需要FQ才能下载) 不能FQ的童鞋,可以在这里下载: http://xiazai.jb51

  • 使用Java实现串口通信

    1.介绍 使用Java实现的串口通信程序,支持十六进制数据的发送与接收. 源码下载地址:http://download.csdn.net/detail/kong_gu_you_lan/9611343 效果图如下: 2.RXTXcomm Java串口通信依赖的jar包RXTXcomm.jar 下载地址:http://download.csdn.net/detail/kong_gu_you_lan/9611334 内含32位与64位版本 使用方法: 拷贝 RXTXcomm.jar 到 JAVA_HO

  • 使用Java实现简单串口通信

    本博文参考自https://www.jb51.net/article/100269.htm www.jb51.net/article/100269.htm 没想到挺多人需要这个的,很高兴这篇文章能对大家有帮助,主要的工具类博文里已经有了,当然,要小工具源码的留言邮箱即可. 2019.09.05 最近接触到了串口及其读写,在此记录java进行串口读写的过程. 1.导入支持java串口通信的jar包: 在maven项目的pom.xml中添加RXTXcomm的依赖 或者 下载RXTXcomm.jar并

  • Java实现的串口通信功能示例

    本文实例讲述了Java实现的串口通信功能.分享给大家供大家参考,具体如下: 用Java实现串口通信(windows系统下),需要用到sun提供的串口包 javacomm20-win32.zip.其中要用到三个文件,配置如下: 1.comm.jar放置到 JAVA_HOME/jre/lib/ext; 2.win32com.dll放置到 JAVA_HOME/bin; 3.javax.comm.properties 两个地方都要放     jre/lib(也就是在JAVA文件夹下的jre)    JA

  • Android串口通信封装之OkUSB的示例代码

    本文介绍了Android串口通信封装之OkUSB的示例代码,分享给大家.具体如下: Github传送门:OkUSB OkUSB 一个简洁的Android串口通信框架. 功能简介 支持设置波特率 支持设置数据位 支持设置停止位 支持设置校验位 支持DTS和RTS 支持串口连接状态监听 用法简介 Gradle allprojects { repositories { ... maven { url 'https://jitpack.io' } } } dependencies { compile '

  • Java网络编程之TCP通信完整代码示例

    一.概述 Socket类是Java执行客户端TCP操作的基础类,这个类本身使用代码通过主机操作系统的本地TCP栈进行通信.Socket类的方法会建立和销毁连接,设置各种Socket选项. ServerSocket类是Java执行服务器端操作的基础类,该类运行于服务器,监听入站TCP连接,每个socket服务器监听服务器的某个端口,当远程主机的客户端尝试连接此端口时,服务器就被唤醒,并返回一个表示两台主机之间socket的正常Socket对象. 二.什么是TCP? TCP是一种面向连接的.可靠的.

  • java使用Rxtx实现串口通信调试工具

    本文实例为大家分享了java使用Rxtx实现串口通信调试工具的具体代码,供大家参考,具体内容如下 最终效果如下图: 1.把rxtxParallel.dll.rxtxSerial.dll拷贝到:C:\WINDOWS\system32下. 2.RXTXcomm.jar 添加到项目类库中. 代码: package serialPort; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream

  • Java开发druid数据连接池maven方式简易配置流程示例

    目录 1.pom.xml文件引入druid和数据库连接jar包 2.jdbc.properties配置 3.ibatis-config.xml关于mybatis的参数配置 4.spring-mybatis.xml整合文件配置 5.web.xml配置检测访问 禁止访问的ip 6.根据需要配置各类监控Spring-mvc.xml 7.可选安全的加密操作 数据库加密 8.访问方式 1.pom.xml文件引入druid和数据库连接jar包 <properties> <druid.version&

随机推荐