最近在研究一个东西要用到串口的读写,通过读取串口COM2获取一个指令,然后根据该指令通过配置文件获取其他的信息再通过串口COM1进行做下一步的一系列操作。
java读写串口要用到的是javax扩展类库javacomm,它是一系列的标准,该类库在sun的官网上只提供linux版本。由于我所应用的平台是win32,所以找了个win32的实现。在此过程中遇到了一系列的问题,后来终于解决问题并完成了通过读写串口进行通信的功能。在此对其java读写串口的情况做个简要说明:
首先下载javacomm包,然后将其解压,解压后需要做的就是配置串口通信相关东西,下面是自己使用的时候的配置:
1.把javax.comm.properties文件拷贝到Java运行时环境的lib目录中,即:
C:\Program Files\Java\jdk1.5.0_12\lib\javax.comm.properties
C:\Program Files\Java\jdk1.5.0_12\jre\lib\javax.comm.properties
2.把win32com.dll拷贝到C:\windows\system32\ 和 C:\Program Files\Java\jdk1.5.0_12\jre\bin\下
3.把comm.jar放到Java运行时环境的lib目录中,即C:\Program Files\Java\jdk1.5.0_12\lib\comm.jar
4.在"环境变量"的CLASSPATH中添加comm.jar,如:%JAVA_HOME%\lib\comm.jar;
然后通过COM的API来实现串口的读写,其实API相当简单,如下代码:
CommPortIdentifier serialPortId = CommPortIdentifier.getPortIdentifier(“COM2”);
SerialPort port = (SerialPort) serialPortId.open(“Read”, 30);//打开COM2串口,其中30参数是用来设置打开串口的超时时间。
port.setSerialPortParams(1200, 8, 1, 0);//设置COM2的波特率,数据位,停止位,校验方式等
//从串口中得到输入输出流了
OutputStream out = port.getOutputStream();
out .write(buffer);
out .flush();
InputStream in = port.getInputStream();
in.read(data);//data是一个byte[]
如果COM1通信要求的波特率是1200,而系统默认的波特率是9600,在系统的设备管理器中修改了COM1的波特率为1200,那么这个时候修改后程序不报错误,但是在串口里获取不到任何信息,也就是在设备管理器修改COM1的波特率是没有用的,必须通过port.setSerialPortParams(1200, 8, 1, 0)来设置其波特率(之前这个问题一直困扰着我,以为在设备管理器修改COM1的波特率就可以了)。
分享到:
相关推荐
利用GUI图形化界面实现JAVA串口通信
JAVA串口通讯 modbus
java串口通讯及串口调试助手
jar包含32位与64位版本使用方法如下:拷贝 RXTXcomm.jar 到 <JAVA_HOME>\jre\lib\ext目录中
java串口通讯demo源码,内有注解。可实现通过javaWeb页面控制串口,调用串口数据,发送串口指令等操作。可同时监听多个串口,并同时向多个串口发送和接收消息。内含已经写好的串口监听类,定时器,以及串口数据转换...
java,串口通信,PC-PC串口,实现串口通信,PC-PC串口
Java串口通信编程
java源码 JAVA串口通信源码 .
Java实现串口通信教程,Java实现串口通信教程,Java实现串口通信教程,Java实现串口通信教程,Java实现串口通信教程.
java串口通信实例,仅供大家学习参考。Java串口,本实例大致工作流程是:将以下的所有java类都放在一个包下面,run as ---java application ,打开的是一个图形化界面,最上面的是一个输入文本框(也就是你要发射的...
Java串口通信攻击技术Java串口通信攻击技术Java串口通信攻击技术Java串口通信攻击技术Java串口通信攻击技术
Linux系统下用Java开发串口通信程序的类库,从Arduino的IDE中扒出来的,比官方的更加好用,Bug少,支持Arduino设备与Linux之间的串口通信;Linux系统下用Java开发串口通信程序的类库,从Arduino的IDE中扒出来的,比...
java串口通信简单例子,方便串口上位机的开发,作为引导作用
很全面的java串口通信详解,很适合新手学习
eclipse导入可以直接运行 测试代码在Test.java文件中
对常用的 RS232 串行端口和 IEEE1284 并行端口通讯的支持。 RS-232-C(又称 EIA RS-232-C,以下简称 RS232)是在 1970 年由美国电子工业协会(EIA)联合贝尔系统、调制解 调器厂家及计算机终端生产厂家共同制定的用于...
Java串行通信,控制打印机 Java串行通信,控制打印机
java 串口通信 http://blog.hitangjun.com
java串口类的构造方法以及初始化串口,从串口读取数据,往串口写入数据以及关闭串口的函数。