linux 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[做串口通信,要从网上下载三个文件:分别是: 1.COMM.JAR; 2.javax.comm.properties; 3.win32com.dll; 然后把这三个文件放到如下目录中: 假如你把JAVA开发包装在C:\jdk1.6

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的波特率就可以了

java-linux-c-c++)。

[Qconf配置管理工具-Java使用文档 前一篇文章已经介绍如何安装和基于命令行的方式使用QConf,这篇文章主要介绍一下如何生成Java客户端,以及怎样与Java工程进行结合使用,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值