`
FengShen_Xia
  • 浏览: 279292 次
  • 性别: Icon_minigender_1
  • 来自: 东方水城
社区版块
存档分类
最新评论

Java串口通信总结

    博客分类:
  • Java
阅读更多

         最近在研究一个东西要用到串口的读写,通过读取串口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的波特率就可以了)。

 

 

 

 

分享到:
评论
2 楼 影非弦 2013-07-09  
这个in.read(data);//data是一个byte[] 
得到data后怎么处理,怎么转换成易识别的字符串
1 楼 影非弦 2013-07-09  
这个不详细啊,我弄了一天了,都没弄出来,总是出错,读信息的时候不需要添加监听器吗?

相关推荐

    java实现串口通信demo(含串口通信jar包)

    RXTX库是Java中一个流行的开源串行通信库,它提供了与操作系统底层串口通信的接口。在Java应用中使用RXTX库可以方便地打开、配置和读写串口。为了使Java应用程序能够使用RXTX库,我们需要将`RXTXcomm.jar`添加到系统...

    Java串口通信编程

    Java 串口通信编程 Java 串口通信编程是指使用 Java 语言开发串口通信程序的过程。串口通信是一种常见的通信方式,广泛应用于工业自动化、机器人控制、物联网等领域。Java 语言作为一门跨平台的编程语言,能够在...

    JAVA串口通信实例(GUI图像化界面)

    Java串口通信是一种在计算机之间通过串行接口进行数据传输的技术。在Java中,我们可以使用javax.comm库或者RXTX库来实现串口通信。这个实例是关于如何使用GUI(图形用户界面)来构建一个Java应用程序,使得用户可以...

    java串口通信全套完整代码-导入eclipse直接用

    Java串口通信是一种在计算机与外部设备之间进行数据交换的技术,尤其在嵌入式系统、自动化设备、物联网应用中广泛应用。本资源“java串口通信全套完整代码-导入eclipse直接用”提供了一套完整的Java串口通信实现,...

    java 串口通讯 rs232

    RS-232,全称为“电子工业协会标准232”,是一种广泛应用于计算机串行通信的接口标准。它允许计算机与其他设备,如打印机、调制解调器或者嵌入式系统进行通信。 在Java中实现串口通信,通常会用到javax.comm库,这...

    Java串口通讯及串口调试助手

    Java串口通讯是Java编程领域中的一个重要组成部分,它允许程序通过串行端口与外部设备进行数据交换,如传感器、打印机、GPS等。串口调试助手则是开发过程中用于测试和诊断串口通信问题的工具,它能帮助开发者直观地...

    java源码 JAVA串口通信源码 2018127

    总结来说,Java串口通信涉及的知识点包括Java编程、串行通信协议、RXTX库的使用以及事件驱动编程。`SerialPortDemo-master`项目提供了一个实际操作的例子,你可以通过研究该项目的源码,理解并学习如何在Java中实现...

    Java实现串口通信

    串行端口,或称为串口,是一种用于设备间通信的接口,它以串行方式传输数据,一次传输一位。在Java中,通常使用javax.comm包来处理串口通信,这个包提供了SerialPort类以及其他相关类和接口,允许开发者读写串口数据...

    java_chuankou.rar_java串口通信_pc串口_串口_串口 java_串口通信JAVA

    Java串口通信是一种在两台计算机之间通过串行接口进行数据传输的技术,广泛应用于设备控制、数据采集、物联网等场景。在Java中实现串口通信,通常需要借助第三方库,如RXTX或JSSC(Java Simple Serial Connector)。...

    JAVA usb串口通讯

    Java USB串口通讯是将Java编程语言应用于USB设备与串口通信的一种技术。在工业自动化、物联网(IoT)和嵌入式系统中,这种通讯方式广泛应用,因为它们需要通过串行接口与各种硬件设备进行数据交换。Java的串口通讯主要...

    javacomm20-win32.rar_JAVA comm不_Java 串口通信_javacomm20_javacomm20-

    总结来说,`javacomm20-win32`是一个针对Windows的Java串口通信实现,它基于Java Comm API,允许开发者通过Java代码控制串行端口进行数据传输。在使用时,需要注意兼容性问题,以及可能需要配合操作系统驱动才能正常...

    Java串口通信实例

    总的来说,Java串口通信实例`comtest`揭示了如何在Java环境中实现与硬件设备的串行通信。通过理解这些基本步骤和关键类,你可以根据自己的需求扩展功能,比如添加多线程、错误恢复机制,或者构建更复杂的通信协议。

    java串口通信编程.zip

    总结起来,"java串口通信编程.zip"是一个用于学习和实践Java串口通信的资源包,通过`JavaRs232.java`示例代码和RXTX库,我们可以了解如何在Java中实现串口通信,从而与外部硬件设备进行数据交互。这个过程涉及到Java...

    Java串口通信详解

    - RS-232-C,也称为EIA RS-232,是一种广泛使用的串行通信标准,允许全双工通信,即同时进行数据发送和接收。 - Java中的串口通信API主要由SUN公司提供,包括`comm2.0.jar`(Windows)和`comm3.0.jar`(Linux/...

    Java串口通讯代码和工具

    Java串口通讯是一种在Java应用程序之间或Java程序与硬件设备之间建立通信的重要技术。它主要依赖于特定的库,如RXTX库,用于实现与物理串行端口的交互。RXTX是一个开源的Java库,提供了串行和并行通信的功能,使得...

    java串口通讯方法与源码

    Java串口通讯是一种在计算机之间或计算机与其他设备(如传感器、打印机、GPS模块等)进行低级别通信的方式。在Java中,我们可以使用`javax.comm`库来实现串口通信,但需要注意的是,这个库并不包含在标准Java SDK中...

    java串口通信例程

    Java串口通信是一种在计算机与外部设备之间进行数据交换的技术,它通过标准的串行物理接口(例如RS-232)实现。在Java中,虽然标准库并未直接支持串口通信,但可以通过第三方库来实现,如RXTX和Java Comm API。本...

    Java 串口通讯demo

    Java串口通讯是一种在计算机与外部设备之间进行数据交换的技术,尤其在嵌入式系统、自动化设备、物联网应用中广泛应用。这个"Java 串口通讯demo"是一个实战项目,它结合了网页界面并通过WebSocket实现与服务器的实时...

    java串口通讯demo源码.zip

    java串口通讯demo源码,内有注解。可实现通过javaWeb页面控制串口,调用串口数据,发送串口指令等操作。可同时监听多个串口,并同时向多个串口发送和接收消息。内含已经写好的串口监听类,定时器,以及串口数据转换...

Global site tag (gtag.js) - Google Analytics