使用java进行串口通信确实不是串口通讯操作的主流方法,另外写好的的java程序无法随意的迁移。不过对熟悉java的同学确实挺有帮助,下面是我使用java语言进行串口通讯的过程。

1 usb转串口安装。

2 jar包的安装。

3 java代码的实现。

usb转串口的安装。

一般把串口线插上电脑就会提示安装驱动,在网上下一个串口驱动就会成功了。可我的电脑却怎么也成功不了,在网上找了各种方法就是不行(我的系统是win7)。更有不靠谱的说法是重装系统。总之试变了网上的驱动,还用什么驱动精灵之类的都把还是没有成功。打开设备管理器,usb-serial controller总是有×××的叹号。

我的解决方法。

运行-》输入hdwwiz-》下一步选择安装我手动列表中选择硬件(高级)-》下一步选择端口(com和lpt)-》下一步选择public-》然后选择第一个public ............->再点击下一步进行安装。

最后终于成功了。

安装jar包

安装jar包和我们平常的引入jar包不太一样。附件是用到的jar包。

首先把RXTXcomm.jar放入所用jre的lib目录下,把rxtxSerial.dll放到jre的bin目录下就可以了。

代码实现

主要是两步第一步查到所使用的com口。第二步对串口进行监听。

具体的代码如下:

import java.io.*;

import java.util.*;

import test.FeelTheBase;

import test.SimpleReadA;

import gnu.io.*;

public class SimpleRead implements SerialPortEventListener { // SerialPortEventListener

// 监听器,我的理解是独立开辟一个线程监听串口数据

public CommPortIdentifier portId; // 串口通信管理类

static Enumeration portList; // 已经连接上的端口的枚举

public InputStream inputStream; // 从串口来的输入流

public InputStreamReader streamReader;

public OutputStream outputStream;// 向串口输出的流

public OutputStreamWriter streamwriter;

public SerialPort serialPort; // 串口的引用

public void init() {

try {

serialPort = (SerialPort) portId.open(s, 2000);// 打开串口名字为myapp,延迟为2毫秒

inputStream = serialPort.getInputStream();

outputStream = serialPort.getOutputStream();

serialPort.addEventListener(this); // 给当前串口天加一个监听器

} catch (FileNotFoundException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

catch (TooManyListenersException e) {

}

serialPort.notifyOnDataAvailable(true); // 当有数据时通知

try {

serialPort.setSerialPortParams(57600, SerialPort.DATABITS_8, // 设置串口读写参数

SerialPort.STOPBITS_1, SerialPort.PARITY_ODD);

} catch (UnsupportedCommOperationException e) {

}

}

public void serialEvent(SerialPortEvent event) {// SerialPortEventListener

// 的方法,监听的时候会不断执行

switch (event.getEventType()) {

case SerialPortEvent.BI:

case SerialPortEvent.OE:

case SerialPortEvent.FE:

case SerialPortEvent.PE:

case SerialPortEvent.CD:

case SerialPortEvent.CTS:

case SerialPortEvent.DSR:

case SerialPortEvent.RI:

case SerialPortEvent.OUTPUT_BUFFER_EMPTY:

break;

case SerialPortEvent.DATA_AVAILABLE:// 当有可用数据时读取数据,并且给串口返回数据

try {

while (inputStream.available() > 0) {

byte[] by = new byte[inputStream.available()];

inputStream.read(by);

System.out.println(by);//获得的数据

}

} catch (IOException e) {

}

break;

}

}

public static void main(String[] args) {

SimpleRead com3 = new SimpleRead();

try {

portList = CommPortIdentifier.getPortIdentifiers(); // 得到当前连接上的端口

while (portList.hasMoreElements()) {

CommPortIdentifier p = (CommPortIdentifier) portList

.nextElement();

if (p.getPortType() == CommPortIdentifier.PORT_SERIAL) {// 判断如果端口类型是串口

if (p.getName().equals("COM25")) { // 判断如果COM3端口已经启动就连接

com3.setCom(p);

com3.setOther(com5);

System.out.println(p.getName());

}

}

}

com3.init(); // 实例一个;

} catch (Exception e) {

e.printStackTrace();

}

}

}

Java 串口 mysql_java串口通讯相关推荐

  1. java串口发送十六进制数,本文实例为大家分享了Java实现串口通信的具体代码,供大家参考,具体内容如下1.介绍使用Java实现的串口通信程序,支持十六进制数据的发送与接收。 源码:...

    本文实例为大家分享了Java实现串口通信的具体代码,供大家参考,具体内容如下 1.介绍 使用Java实现的串口通信程序,支持十六进制数据的发送与接收. 源码:SerialPortDemo 效果图如下: ...

  2. 【工业串口和网络软件通讯平台(SuperIO)教程】七.二次开发服务驱动

    SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1    服务接口的作用 围绕着设备驱动模块采集的数据,根据需求提供多种应用服务,例如:数据上传服务.数 ...

  3. java 怎么向串口发送指令_idea ssm项目java程序使用十六进制rxtx包向串口发送指令的方法...

    1.前提 idea ssm项目环境要配好,这里就不多赘述了,自己配好 2.下载配置rxtx包 官网下载:http://rxtx.qbang.org/wiki/index.php/Download 根据 ...

  4. 【工业串口和网络软件通讯平台(SuperIO)教程】二.架构和组成部分

    1.1    架构结构图 1.1.1    层次示意图 1.1.2    模型对象示意图 1.2    IO管理器 IO管理器是对串口和网络通讯链路的管理.调度.针对串口和网络通讯链路的特点,在IO管 ...

  5. 【工业串口和网络软件通讯平台(SuperIO)教程】五.二次开发图形显示界面

    SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1    图形显示接口的作用 用于显示采集终端设备的数据,可以把不同类型设备的数据以多种形式集成显示在不 ...

  6. Java程序与串口的通信实现及调试

    下面为大家介绍一下小编最近一个项目中,牵扯到与串口通信部分的实现及调试. 串口通信原理 串口通信指串口按位(bit)发送和接收字节.尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数 ...

  7. 三菱FX系列源码,C#上位机FX系列源码,串口485.232通讯

    三菱FX系列源码,C#上位机FX系列源码,串口485.232通讯,可读X/Y/M/S/D,可写Y/M/S/D,FX系列,有备注. 新增仿真FX3U仿真器和上位机通信,全程不需要实物. 拿回去可编辑,源 ...

  8. ESP32 (UART 485通讯)-串口之485通讯(3)

    提示:本博客作为学习笔记,有错误的地方希望指正 文章目录 一.ESP32串口介绍 二.硬件设计 三.实现代码 四.串口实验演示结果 五.ESP32串口函数API 5.1.uart_types.h文件中 ...

  9. linux如何设置串口参数,串口通信的参数如何设置

    串行接口是一种可以将接受来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接受的串行数据流转换为并行的数据字符供给CPU的器件.一般完成这种功能的电路,我们称为串行接口电路. 串口通信程 ...

最新文章

  1. python pdf处理 图片_python PDF文件合并、图片处理
  2. 《Flume日志收集与MapReduce模式》一2.2 Flume配置文件概览
  3. 39 网络相关函数(七)——live555源码阅读(四)网络
  4. 汇编指令的学习2——常用的ARM指令
  5. Excel转html
  6. C#下载文件和将文件转换为数据流下载的示例
  7. [zt]OpenCV2.1.0的安装
  8. 分享用Adobe Air向iOS移植游戏的经验
  9. Linux系统下Apache的安装、启动等初级操作
  10. 图片验证,滑块验证解决
  11. linux里的tree 命令,Linux中tree命令起什么作用呢?
  12. 手机常见分辨率及代表机型
  13. 团队现场编程实战(抽奖系统)
  14. Home Assistant 家庭助理安装
  15. 离线安装selenium
  16. Newton 3 牛顿动力学插件 - 主体属性面板
  17. 目标跟踪系列三:ECO: Efficient Convolution Operators for Tracking(2016年11月)
  18. 订单紧急变动?交期无法确定?APS了解一下
  19. 光猫灯显示正常但是报651错误解决办法
  20. CodeM2018 初赛A轮 第1,2题

热门文章

  1. python vars name报错_Python vars()全局名称错误
  2. mongotemplate模糊查_java 中 mongodb的各种操作 模糊查询 精确查询 等等
  3. 数据资产标准研究进展与建议
  4. 【Python】处理 TypeError: ‘FirefoxWebElement‘ object is not iterable
  5. 【数据结构与算法】图结构最小生成树Kruskal算法的Java实现
  6. Python中eval与exec的使用及区别
  7. 大牛带你深入解读HashMap
  8. int和Integer有什么区别?
  9. SpringHttpInvoker解析2-服务端实现
  10. PHP|Yii2下通过插件进行图片处理(亲测可用)