JAVA调用串口,RXTX工具包。出现与串口设备通讯中断事件SerialPortEvent.BI 40C

用java调用串口,用的是RXTX。现在问题程序启动之后会频繁的出现与串口设备通讯中断的事件(SerialPortEvent.BI),导致我程序收到的报文不完整,不正确,不知道各位有没有遇到过,求帮助,感谢!!!

0

2个回答

1
0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
java调用串口工具包
java调用串口工具包,亲测在ubantu64位系统可用。文档有Readme.txt说明。简单说就是把jar包放进jre/ext/lib。 Copy RXTXcomm.jar ---&gt; <JAVA_HOME>\jre\lib\ext Copy rxtxSerial.dll ---&gt; <JAVA_HOME>\jre\bin Copy rxtxParallel.dll ---&gt; <JAVA_HOME>\jre\bin
利用java rxtx对串口进行通讯
使用rxtx jar包,对串口进行通讯。jar包和源码都有,完整的java工程。
java rxtx串口开发
http://files.cnblogs.com/files/Dreamer-1/mfz-rxtx-2.2-20081207-win-x86.zip(32位) http://files.cnblogs.com/files/Dreamer-1/mfz-rxtx-2.2-20081207-win-x64.zip(64位) rxtx解压包中的rxtxParallel.dll,rxtxSeria...
java串口RXTX包
这个是java访问串口所需要的第三方RXTX包
RXTX 串口程序调试 -java
调试软件 VSPD+6.9.zip (用于虚拟串口) serial_port_utility_latest_3.7.3.exe  连接串口 用于发送信息 一、先打开Configure Virtual Serial Port Driver 虚拟两个串口 com1  com2 二、 安装完成后 双击SerialPortUtility.exe   --用于发送信息
java串口读写程序rxtx
java串口读写程序rxtx
java基于rxtx串口操作
一、rxtx串口操作 package com.am.cs12.commu.remote_serialPort;import java.util.*; import java.io.*;import org.apache.log4j.Level; import org.apache.log4j.Logger;import com.am.util.NumberUtil;import gnu.io.Com
Java串口读写程序RXTX
使用RXTX包进行串口读写,有完整用户界面,可以定义参数后监听串口或者向串口发送数据。请参考网上RXTX的配制方法配置好Eclipse以后运行,如不配置无法正常编译。
RXTX串口驱动JAVA.zip
用于JAVA中串口设备的控制,可接收设备返回的消息,继承Observable和实现SerialPortEventListener即可实现自动接收设备返回信息,附带串口调试工具.
rxtx串口开发问题
我现在要维护一个项目 现在已经实现了在linux上的串口通信(用的rxtx)rn现在叫我要兼容windows rn是不是只需要在windos里把 RXTXcomm.jar rxtxParallel.dll 和 rxtxSerial.dll 放到windows相应的位置 rn串口名需要变动(如写 COM3) 就不用更改后台代码?rnrn我百度过 说rxtx兼容4个平台 Windows,Linux,Mac os X,Solaris 如果每次更换平台都要改后台代码,那rxtx就封装得不太好了,个人理解rnrn求高手帮帮忙,讲解下,我该怎么做才能做到两个平台兼容 rn求高手 求思路 求放向
rxtx串口.rar
rxtx串口,本人通过测试,代码简单明了,注意导入jar文件,使用前请设置com口,必须有硬件连接在电脑上
RXTX串口jar包配置
1、 把rxtxParallel.dll、rxtxSerical.dll复制到C:\Windows\System32下。 2、 把rxtxParallel.dll、rxtxSerical.dll复制到D:\Program Files\Java\jdk1.7.0_75\jre\bin下。 3、 把RXTXcomm.jar包、comm.jar包复制到D:\Program Files\Java\
rxtx串口问题
我独立封装了一个类SerialClass用于操作串口的收发,类中设有一个串口对象SerialPort和一个线程接收改SerialPort的数据。rn原本单独一个串口工作是完全正常,现在设备需要多加一个,rn我便在主类中初始化了2个SerialClass : SerialClass[] srs=new SerialThreadReader[2];//2个rn如果我只对srs其中一个SerialClass开启接收线程,数据接收完全正确,rn现在如果我把2个SerialClass都同时开启接收线程,则2个独立接收串口数据的线程收到的数据都不完整了,出现了丢包现象。rn我串口实现使用的是开源Rxtx。rnrn这是什么情况,请大侠们指点思路。谢谢啦。
Rxtx串口的问题
我在Windows跑通了串口通讯,但是放到Linux上运行,JVM报错了,报错内容如下:rnrn#rn# A fatal error has been detected by the Java Runtime Environment:rn#rn# SIGSEGV (0xb) at pc=0x00007f83aa558d9d, pid=21887, tid=0x00007f83aa316700rn#rn# JRE version: Java(TM) SE Runtime Environment (8.0_171-b11) (build 1.8.0_171-b11)rn# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.171-b11 mixed mode linux-amd64 compressed oops)rn# Problematic frame:rn# C [librxtxSerial.so+0x6d9d] read_byte_array+0x3drn#rn# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java againrn#rn# An error report file with more information is saved as:rn# /root/Workspaces/MyEclipse 2017/telegram/hs_err_pid21887.logrn#rn# If you would like to submit a bug report, please visit:rn# http://bugreport.java.com/bugreport/crash.jsprn# The crash happened outside the Java Virtual Machine in native code.rn# See problematic frame for where to report the bug.rn#rnrn也试过ulimit -c unlimitedrn也试过在eclipse.ni里修改defaultType,现在可以保证java环境和编译环境没问题rn已经在这个问题上纠结了很久,求大神快来帮帮忙
在一台机子上串口1的设备与串口2的设备通讯?
在一台机子上串口1的设备与串口2的设备通讯?
java RXTX做串口通信,怎么唯一确定某个设备的串口?
由于串口号是系统分配的,更换接口串口号会变动,C++是可以获取串口驱动供应商的,java怎么获取?
串口工具包
包括串口调试软件、虚拟串口设置等常用串口工具
java串口编程 rxtx工具包
java串口编程,rxtx支持32、64位机。在linux、windows等平台均可使用。
利用java rxtx对串口进行通讯(更新版)
项目在jdk1.7 64位中运行,如需使用32位jdk,需更换jar包和dll文件。 项目使用rxtx jar包,对串口进行通讯。jar包和源码都有,完整的java工程。
java与串口设备通信
我现在有一个刷卡机,入面芯片是:AT89C2051!现在我想通过java程序捕获刷卡时的卡号信息!并作一些记录!是不是通过扩展包 javax.comm 就可以实现?还需要了解设备的串口AT指令吗?我现在的这个刷卡器入面的芯片会不会有特定指令?跟芯片厂商的有区别吗?rnrn还没有接触这方面的编程,想了解一下!谢谢!
java 串口 通讯
我用了串口调试助手(UartAssist.exe串口调试助手 (CM版)) rn先把“按十六进制发送”勾上 rn然后再输入A8 00 01 00 15 00 rn或用sscom32.exe rn先把“hex发送”勾上 rn然后再输入A8 00 01 00 15 00 rn这样都可以从串口外部设备看到结果 rn但是在程序中应该怎么处理呢?? rn我用的是comm.jar
Java通讯串口驱动
Java串口驱动,用于Java程序的串口通讯。Java串口驱动,用于Java程序的串口通讯Java串口驱动,用于Java程序的串口通讯。
Java 利用RXTX串口工具使用短信猫
由于前段时间做的系统需要使用短信猫收发短信,所以研究了一下在Java下使用短信猫,网上很多资料都是使用的smslib的jar包来发送短信,但是这种方式只支持32的jdk,而我的系统使用的是linux的64位环境,所以最后采用了用RXTX串口通讯工具直接向短信猫发送AT指令的方式实现。 1. smslib.jar收发短信 java调用短信猫发送短信。 这里的短信猫主要使用RS232串口与服务器通信。smslib.jar 需要用到java串口通信需要用到的comm.jar,win32com.dll和javax.comm.properties。 下载地址:短信猫java二次开发包smslib及使用示例 具体的使用可以参考短信猫java二次开发包源代码smslib-3.5.4.jar 2. RXTX串口通讯工具和短信猫收发短信关键代码 2.1. 短信猫串口通讯工具 rxtx-2.2pre2-bins --------------------- 作者:my_tiantian 来源:CSDN 原文:https://blog.csdn.net/my_tiantian/article/details/77775648 版权声明:本文为博主原创文章,转载请附上博文链接!
RXTX串口swing真正实例
1:SWING表现形式 2:串口设置 3:发送数据 4:接收数据 5:数据分析
JAVA串口操作例子 rxtx实例(含rxtx官方jar包)
JAVA串口操作例子 rxtx实例(含rxtx官方jar包) 用JAVA实现读写串口,采用RXTX包。此程序只实现WINDOWS下对串口操作
Java中基于Rxtx的串口操作
感谢:java串口通信 一个嵌入式系统通常需要通过串口与其主控系统进行全双工通讯,譬如一个流水线控制系统需要不断的接受从主控系统发送来的查询和控制信息,并将执行结果或查询结果发送回主控系统。 本文是基于RXTX(提供串口和并口通信)开源类库对串口进行操作的。 使用准备(windows,rxtx-2.2) 1.将RXTXcomm.jar放到%jre_home%\lib\ext
Linux 编译RXTX(JAVA串口开发)源码
 Linux编译Rxtx(串口)源码一、Rxtx环境配置1、生成rxtx-2.2pre2.tar.gz注:源码rxtx-2.2pre2.zip,修改rxtx-2.2pre2/src目录下的SerialImp.c, RS485Imp.c, I2CImp.c, RawImp.c文件,分别添加#       include &amp;lt;linux/utsrelease.h&amp;gt;,生成rxtx-2.2pre...
java rxtx获取不到串口数据
我用了一条rs-232线,把我的pc机和单片机连接起来。然后用了STC里面自带的串口助手,向串口发送数据,但是pc机接受不到。后来我又专门下载了一个串口助手,发送字符串,还是接受不到。哪位大神帮我看下,是我的操作有问题,还是pc机获取串口数据的代码有问题。rnimport java.io.*;rnimport java.util.*;rnimport gnu.io.*;rnimport java.awt.*;rnimport java.util.Properties;rnimport javax.swing.*;rnimport java.awt.event.*;rnpublic class com extends JFrame implements ActionListener,Runnable,SerialPortEventListenerrnrn static Enumeration portList;rn static CommPortIdentifier portId;rn static SerialPort serialPort;rn static OutputStream outputStream;rn static InputStream inputStream;rn static CommDriver driver=null;rn static Properties props = new Properties();rn static boolean use=false;rn Thread readThread;rn JScrollPane p1;rn JTextField Text=new JTextField(10);rn JButton ok=new JButton("确定");rn JTextArea area=new JTextArea(15,10);rn JLabel l1=new JLabel("Message:");rn com()rn rn setTitle("Com");rn setVisible(true);rn setLayout(null);rn p1=new JScrollPane(area);rn add(l1);l1.setBounds(35,30,100,25);rn add(Text);Text.setBounds(120,30,150,25);rn add(ok);ok.setBounds(290,30,80,23);rn add(p1);p1.setBounds(35,70,340,250);rn ok.addActionListener(this);rn setSize(400,400);rn setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);rn setResizable(false);rn setVisible(true);rn Dimension screen=Toolkit.getDefaultToolkit().getScreenSize();rn setLocation((screen.width-400)/2,(screen.height-400)/2);rn addWindowListenerrn (rn new WindowAdapter()rn rn public void windowClosing(WindowEvent e)rn rn System.exit(1);rn rn rn );rn rn public void actionPerformed(ActionEvent e)rn rn if(e.getSource()==ok)rn rn rn String message1=Text.getText()+"\r";rn byte[] message = message1.getBytes();rn boolean portFound=false;rn String defaultPort="COM3";rn portList=CommPortIdentifier.getPortIdentifiers();rn System.out.println(portList.hasMoreElements());rn while(portList.hasMoreElements())rn rn portId=(CommPortIdentifier)portList.nextElement();rn System.out.println("portId:"+portId.getName());rn if(portId.getPortType()==CommPortIdentifier.PORT_SERIAL)rn rn if(portId.getName().equals(defaultPort))rn rn System.out.println("OK:1");rn portFound=true;rn if(!use)rn rn tryrn rn serialPort=(SerialPort)portId.open("ReadCommApp",2000);rn serialPort.setRTS(false);rn System.out.println("OK:2");rn rn catch(PortInUseException a)JOptionPane.showMessageDialog(null,"端口正在使用");continue;rn rn tryrn rn outputStream=serialPort.getOutputStream();rn System.out.println("OK:3");rn rn catch(IOException a)rn rn tryrn rn serialPort.notifyOnOutputEmpty(true);rn System.out.println("OK:4");rn rn catch(Exception a)rn tryrn rn serialPort.setSerialPortParams(9600, rn SerialPort.DATABITS_8, rn SerialPort.STOPBITS_1, rn SerialPort.PARITY_NONE);rn System.out.println("OK:5");rn rn catch(UnsupportedCommOperationException a)rn tryrn rn outputStream.write(message);//.getBytes());rn //outputStream.write("AT\r".getBytes());rn area.append("\nsend to port is sucess: "+message+"***");rn use=true;rn rn catch(IOException a)rn rn rn rn if(!portFound)rn rn JOptionPane.showMessageDialog(null,"can't find the port");rn rn rn tryrn rn inputStream=serialPort.getInputStream();rn rn catch(IOException a)rn tryrn rn serialPort.addEventListener(this);rn rn catch(TooManyListenersException a)rn serialPort.notifyOnDataAvailable(true);rn readThread=new Thread(this);rn readThread.start();rn rn rn public void run()rn rn tryrn rn Thread.sleep(2000);rn rn catch(InterruptedException e)rn rn public static void main(String[] args)rn rn new com();rn rn public void serialEvent(SerialPortEvent event)rn rn switch(event.getEventType())rn rn case SerialPortEvent.BI:rn case SerialPortEvent.OE:rn case SerialPortEvent.FE:rn case SerialPortEvent.PE:rn case SerialPortEvent.CD:rn case SerialPortEvent.CTS:rn case SerialPortEvent.DSR:rn case SerialPortEvent.RI:rn case SerialPortEvent.OUTPUT_BUFFER_EMPTY:rn break;rn case SerialPortEvent.DATA_AVAILABLE:rn byte[] readBuffer=new byte[1];rn tryrn rn while(inputStream.available()>0)rn rn int numBytes=inputStream.read(readBuffer);rn area.setLineWrap(true);rn area.append(new String(readBuffer));rn rn rn catch(IOException e)rn break;rn rn rn
Java串口/RXTX/GSM/GPRS完整的Demo
这是一个完整的Java串口通信的例子,本案例中Java通过RXTX控制GSM模块,使用GPRS发送数据到服务器端。这是一个非常有参考价值的案例,能启发你对串口操作的理解,你不一定要控制GSM模块,其他模块也是同样道理,希望我们能共同学习!
java操作串口rxtx的dll.win32下面的最新版
java操作串口rxtx的dll.win32下面的最新版
Java串口编程(开源RxTx实现串口)
RxTx是提供串口和并口通信的开源Java类库。该项目提供了Windows、Linux、Mac os X、Solaris操作系统下的兼容javax.comm串口通讯包API的实现。RXTXcomm.jar包是封装了comm.jar的方法。 安装: 1.copy rxtxSerial.dll to [JDK-directory]/jre/bin/rxtxSerial.dll 2.c
关于RXTX串口缓存数据的处理
最近使用RXTX进行linux下串口数据开发, 我做的是对硬件设备数据采集,但串口打开后多次发送采集指令,第一次正常,后面每次都会把之前的数据给返回了。我想把每次采集处理后的串口缓存数据清空,我该如何处理?先谢谢啦。rnrn[code=java]rn class PortListener implements SerialPortEventListener rn /**rn * 串口消息事件rn *rn * @param eventrn */rn public void serialEvent(SerialPortEvent event) rn SerialStatus serialStatus=new SerialStatus();rn try rn // 等待delayRead秒钟让串口把数据全部接收后在处理rn Thread.sleep(delayRead);rn logger.debug("serialEvent[" + event.getEventType() + "] ");rn catch (InterruptedException e) rn e.printStackTrace();rn rn switch (event.getEventType()) rn case SerialPortEvent.BI: // 10rn case SerialPortEvent.OE: // 7rn case SerialPortEvent.FE: // 9rn case SerialPortEvent.PE: // 8rn case SerialPortEvent.CD: // 6rn case SerialPortEvent.CTS: // 3rn case SerialPortEvent.DSR: // 4rn case SerialPortEvent.RI: // 5rn case SerialPortEvent.OUTPUT_BUFFER_EMPTY: // 2rn break;rn case SerialPortEvent.DATA_AVAILABLE: // 1rn try rn bufferSize=0;rn readBuffer=new byte[1024];rn // 多次读取,将所有数据读入rn while (inputStream.available() > 0) rn bufferSize = inputStream.read(readBuffer,0,readBuffer.length);rn rnrn serialStatus.setStatus(true);rn serialStatus.setDataBuff(readBuffer);rn serialStatus.setBuffLength(bufferSize);rn //清除串口缓存rn rn //将串口返回的消息通知观察者rn notifyMessage(serialStatus);rn catch (IOException e) rn e.printStackTrace();rn rn break;rn rn rn rn[/code]
请教下RXTX的串口库
目前在程序中打开一个串口通信是正常的,但是打开2个,第一个串口就不行,只有后面打开的才行,rn是不是RXTX不支持一个程序打开多个串口rnrn如果是一个程序,打开2次,每次打开一个串口也是可以得rn请教
回顾Qt调用串口设备
    最近一直在学习如何使用 Qt5.10 编写一些小程序,学的很多很杂,难免有些容易遗忘的东西。今天就打算用写博客的形式做一下小小的回顾,把之前写过的一些东西整理分享一下,非常欢迎各路大佬们前来交流指正。    那么废话不多说了,今天要回顾的内容是关于Qt这个软件中调用系统串口设备进行通信的方法。一、串口基本操作1.环境配置    Qt5中有一个QSerialPort类,使用它我们就可以方便的...
串口程序 rxtx properties文件配置问题
rn最近几天做课程项目要用到串口编程,网上查到好多同学好像都调通了啊,可是我调试运行程序的时候总是先弹出来一个框:rn[img=https://img-bbs.csdn.net/upload/201310/26/1382787543_738279.jpg][/img]rnrn提示properties文件没有检测到,rn于是选好端口号,然后Save,rnta就会输出到C:\Program Files\Java\jre7\lib\gnu.io.rxtx.SerialPortsrnrn我应该如何放置ta要检测的gnu.io.rxtx.properties文件,才会检测到?rn还是因为我的系统的原因?我用的是win7 64bit x86,最新的rxtx应该是支持的吧rnrn下面是一个检测端口的一个简单程序:rnrn[code=java]rnimport gnu.io.*;rnrnimport java.io.*;rnimport java.util.*;rnrnpublic class RXTXDemo rnrn public static void main(String[] args) rnrn for (int i=0;i<15;i++)rn String comPort="COM"+i;rn tryrn CommPortIdentifier portId=CommPortIdentifier.getPortIdentifier(comPort);rn System.out.println(portId.getName());rn catch(NoSuchPortException e)rn System.err.println(comPort);rn rn rn rnrn rnrn[/code]
java-串口操作 rxtx实例
java-串口操作 实例(单例+单线程) 文档+rxtx包+javacom包 自己写的,请大家多多指教。
rxtx 串口写入 出错?请看。
我用串口模拟软件打开串口rnrnrn用这句打开串口,老是异常,是不是不能这样子访问?rnSerialPort serialPort;rnInputStream inputStream = serialPort.getInputStream();rnOutputStream outputStream = serialPort.getOutputStream();rnrnrn但如果用rnsocket.getOutputStream(); 就可以正常访问 为什么??rnrn我看网上好多例子都是serialPort.getInputStream();的rnrnrn请教了。rnrn
rxtx 判断串口是否打开?
rxtx 判断串口是否打开?rnrn怎么判断串口已经打开?rnrn(SerialPort) portId.open("COM5", 2000);rnrn这个是打开,但是我想判断下是否打开,该如何判断?
串口输入输出事例串口设备
串口的输入输出 开发程序语言 VB 串口设备 磁条器、密码器
如何与RS232的串口设备进行通讯
老板叫我给出一个与串口设备进行通讯的通用程序,(主要为医疗设备,能通过修改配置读取不同设备发送上来的数据)。我没有头绪了,请各位大虾或有经验的大哥帮忙提点建议。分数无所谓,解决问题要多少分都行,最好能给出有用的代码。