写这篇文章是为了记录RS232串口通讯,当时有个央企项目里需要实现自动抓取RS232串口数据,需要支持主要浏览器:Chrome,Firefox,IE8以上等。看了很多有关rs232的资料和也找了很多方法,终于找到了解决方案,实现了此功能很是开心。现在分享下给朋友们...
在此方法解决参阅几篇文章,感谢你们留下的解决思路。
http://elkan1788.iteye.com/blog/1463049
http://wenku.baidu.com/link?url=dC91PCN5bezV_NyXxKfH7SojfUqs3aNeulUinI0eyu2hVWIXr8kf07BQg7AQ8gK-W4RhfnBg3JSYUKAxP68wigp6MgZ5L60CbHxA-gCYiu_
http://blog.csdn.net/luoduyu/article/details/2182321
http://blog.csdn.net/ssrc0604hx/article/details/7979868
1.准备USB-RS232串口线(从京东上购买),在搜索RS232
2.装USB虚拟驱动PL232
USB-Serial Controller D驱动(通过驱动精灵安装后重启生效)检查下是否安装成功在设备和打印机区域查看或至管理,在计算机-》管理-》设备管理器-》设备驱动会显示PL232驱动,没有黄色感叹号,说明驱动已经成功
3.安装个vspd虚拟串口软件,增加一对COM口
4.测试COM口是否开通。
第一安装jar包
我本机是win64的安装的是RXTXjar包,下载地址是http://fizzed.com/oss/rxtx-for-java
Copy RXTXcomm.jar ---> \jre\lib\ext
Copy rxtxSerial.dll ---> \jre\bin
Copy rxtxParallel.dll ---> \jre\bin
若是win32的安装
从sun网站下载对应操作系统的java-Communication API包
win32com.dll复制到\bin目录下;
将comm.jar复制到 \lib;
把javax.comm.properties也同样拷贝到\lib目录下
第二、启动测试端口程式JAVARS232 Preferences->java->Installed JREs->Edit-->ADD External JARS引入RXTXcomm.JAR
new main 方法,测试:
import gnu.io.CommPortIdentifier;
import java.util.Enumeration;
public class Test {
public static void main(String[] args) throws InterruptedException {
Enumeration en = CommPortIdentifier.getPortIdentifiers();
CommPortIdentifier portId;
while (en.hasMoreElements()) {
portId = (CommPortIdentifier) en.nextElement();
// 如果端口类型是串口,则打印出其端口信息
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
System.out.println(portId.getName());
}
}
}
}
Enumeration en = CommPortIdentifier.getPortIdentifiers();
CommPortIdentifier portId;
while (en.hasMoreElements()) {
portId = (CommPortIdentifier) en.nextElement();
// 如果端口类型是串口,则打印出其端口信息
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
System.out.println(portId.getName());
}
}
运行代码后,控制台有输出正确的端口(如下图),说明所有环境正常可进行下步工作,否则请检查。
5.JS测试rs232.htm
配置串口
串口号:
波特率:
校验位:
数据位:
停止位:
发送区域
16进制
接收区域
16进制
HKEY_CLASSES_ROOT\CLSID\{06F15699-BE3F-4486-A676-AC25857131BD}
CLASSID='CLSID:06F15699-BE3F-4486-A676-AC25857131BD'
CODEBASE='SComm32x.ocx'>
在此之前先安装SCOMM32X.OCX控件
通过win+r,在运行输入regedit.exe,打开的注册表的HKEY_CLASSES_ROOT\CLSID\下的值安装的ocx的CLASSID,不知道CLASSID可以通过HKEY_CLASSES_ROOT\CLSID\右键属性->查询Scomm32.ocx会显示在注册表
6.在页面设置好仪器设备对应的波特率串口号: 波特率: 校验位: 数据位:停止位,这个很重要,不知道的可以根据仪器设备型号的查阅此设备的说明文档。厂商一般都会提供。
7.最后收工啦,测试下接收和发送的数据是否OK。