java读写串口要用到的是javax扩展类库javacomm,它是一系列的标准,该类库在sun的官网上只提供linux版本。由于我所应用的平台是win32,所以找了个win32的实现。在此过程中遇到了一系列的问题,后来终于解决问题并完成了通过读写串口进行通信的功能。在此对其java读写串口的情况做个简要说明:
首先下载javacomm包,然后将其解压,解压后需要做的就是配置串口通信相关东西,下面是自己使用的时候的配置:
1.把http://www.doczj.com/doc/4218c7ea4afe04a1b071de5e.htmlm.properties文件拷贝到Java运行时环境的lib目录中,即:
C:\Program Files\Java\jdk1.5.0_12\lib\http://www.doczj.com/doc/4218c7ea4afe04a1b071de5e.htmlm.properties
C:\Program Files\Java\jdk1.5.0_12\jre\lib\http://www.doczj.com/doc/4218c7ea4afe04a1b071de5e.htmlm.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相当简单,如下代码:
Java代码
CommPortIdentifier serialPortId =
CommPortIdentifier.getPortIdentifier(“COM2”);
SerialPort port = (SerialPort) serialPortI d.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();