`
- 浏览:
705225 次
- 性别:
- 来自:
北京
-
1.(comm包的下载以及配置就不说了,这里主要说工具的使用)
下载VSPD(创建虚拟串口并监视通信流量的工具,用它可以创建一对虚拟串口,例如com2-com3
,那么可以用com2发数据,com2将数据发给com3,我们可以从com3接收数据)
2.下载com模拟工具(LP-COMM,或Commix,或BoastSerialTool)
这些工具不是必须的,他可以连接某个com口,你可以把数据填写到输入框,点击发送按钮,就把数据发送了。
这样比较方便,一般情况下,我们用程序发送数据,但为了调试,每次都启动程序很麻烦,这样就比较方便。
但这些工具都不能接受数据!你想看看发的数据到底发送成功没有,需要写一个从comm口读取数据的程序,
先启动它,当你用上述工具发送时,可以看到控制台输出的数据(当然前提时你的程序里有输出语句)
3.从VSPD也可以看出数据发送了,只是它只显示流量,比如从com2发送了5kb的数据,com3接受了5kb的数据
,根据这个也可以判断数据的走向,只是具体发的什么你不清楚。所以还是建议写一个读取数据的程序,
并将读取的内容在控制台打印出来,比较直观。下面附上两个程序,可供使用:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
package com.mypro;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Enumeration;
import javax.comm.CommPortIdentifier;
import javax.comm.PortInUseException;
import javax.comm.SerialPort;
import javax.comm.UnsupportedCommOperationException;
public class CommWrite {
static Enumeration portList;
static CommPortIdentifier portId;
static String messageString = "Hello, world!\n";
static SerialPort serialPort;
static OutputStream outputStream;
public static void main(String[] args) {
portList = CommPortIdentifier.getPortIdentifiers();
while (portList.hasMoreElements()) {
portId = (CommPortIdentifier) portList.nextElement();
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
if (portId.getName().equals("COM2")) {
try {
serialPort = (SerialPort)
portId.open("SimpleWriteApp", 2000);
} catch (PortInUseException e) {}
try {
outputStream = serialPort.getOutputStream();
} catch (IOException e) {}
try {
serialPort.setSerialPortParams(9600,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
} catch (UnsupportedCommOperationException e) {}
try {
for(int i=0;i<1000;i++){
messageString+="the time "+i+"--\n"+messageString+"\n";
outputStream.write(messageString.getBytes());
}
} catch (IOException e) {}
}
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
package com.mypro;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.TooManyListenersException;
import javax.comm.CommPortIdentifier;
import javax.comm.PortInUseException;
import javax.comm.SerialPort;
import javax.comm.SerialPortEvent;
import javax.comm.SerialPortEventListener;
import javax.comm.UnsupportedCommOperationException;
public class CommRead implements SerialPortEventListener {
static CommPortIdentifier portId;
static Enumeration portList;
static InputStream inputStream;
static SerialPort serialPort;
Thread readThread;
public CommRead(){
init();
}
private void init() {
portList = CommPortIdentifier.getPortIdentifiers();
while (portList.hasMoreElements()) {
portId = (CommPortIdentifier) portList.nextElement();
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
if (portId.getName().equals("COM3")) {
try {
serialPort = (SerialPort) portId.open("SimpleReadApp", 2000);
} catch (PortInUseException e) {}
//加串口事件
try {
serialPort.addEventListener(this);
} catch (TooManyListenersException e) {}
//获取输入流
try {
inputStream = serialPort.getInputStream();
} catch (IOException e) {}
serialPort.notifyOnDataAvailable(true);
//设置参数
try {
serialPort.setSerialPortParams(9600,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
} catch (UnsupportedCommOperationException e) {}
}
}
}
}
//串口事件
public void serialEvent(SerialPortEvent event) {
switch(event.getEventType()) {
case SerialPortEvent.BI:{System.out.println("SerialPortEvent.BI");}
case SerialPortEvent.OE:{System.out.println("SerialPortEvent.OE");}
case SerialPortEvent.FE:{System.out.println("SerialPortEvent.FE");}
case SerialPortEvent.PE:{System.out.println("SerialPortEvent.PE");}
case SerialPortEvent.CD:{System.out.println("SerialPortEvent.CD");}
case SerialPortEvent.CTS:{System.out.println("SerialPortEvent.CTS");}
case SerialPortEvent.DSR:{System.out.println("SerialPortEvent.DSR");}
case SerialPortEvent.RI:{System.out.println("SerialPortEvent.RI");}
case SerialPortEvent.OUTPUT_BUFFER_EMPTY:
break;
case SerialPortEvent.DATA_AVAILABLE:
byte[] readBuffer = new byte[200];
try {
while (inputStream.available() > 0) {
int numBytes = inputStream.read(readBuffer);
// System.out.println("-----"+numBytes);
System.out.print(new String(readBuffer));
}
// System.out.print(new String(readBuffer));
} catch (IOException e) {}
break;
}
}
public static void main(String[] args) {
CommRead cc=new CommRead();
}
}
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
在IT行业中,虚拟串口工具是一种非常实用的软件技术,尤其在进行通信协议开发、设备调试或者测试过程中。...对于想要了解更多关于虚拟串口工具使用的用户,阅读提供的链接资源和解压后的文件内容将是非常有益的。
1. 测试与调试:开发人员可以使用虚拟串口工具测试设备驱动程序或应用程序,无需物理串口。 2. 设备仿真:对于依赖串口通信的设备,如GPS接收器、条形码扫描器等,虚拟串口工具可作为测试平台,模拟实际设备的输入。...
8. **技术支持**:通常,虚拟串口工具会提供详细的用户手册和在线技术支持,帮助用户解决使用过程中遇到的问题。 在实际应用中,虚拟串口工具广泛应用于嵌入式系统开发、物联网设备测试、串口设备驱动开发等多个...
虚拟串口工具是一种软件应用程序,它能够创建并模拟物理串口的行为,以便在没有实际物理串口或需要额外串口进行测试和调试时使用。在IT行业中,串口通信是设备间传输数据的一种常见方式,尤其在嵌入式系统、工业自动...
比如,当多个设备需要通过串口通信,但只有一个物理串口时,可以使用虚拟串口工具创建多个逻辑串口,让每个设备都有自己的“独立”通信通道。此外,它还可以用于模拟硬件故障,以便在软件层面测试错误处理和恢复机制...
下面将详细讨论虚拟串口工具的核心功能、工作原理以及如何使用它们。 1. **核心功能**: - **创建虚拟端口**:虚拟串口工具可以创建一对或多个虚拟串口,如COM3、COM4等,这些端口在操作系统中表现得就像真实的...
虽然压缩包内具体软件的详细信息未给出,但根据文件名“一个虚拟串口软件”我们可以推断,它应该是一个可以直接安装和使用的虚拟串口工具,包含必要的软件包和可能的用户手册或者帮助文档,以帮助用户快速上手并解决...
虚拟串口工具,模拟串口工具
在本文中,我们将深入探讨虚拟串口工具的工作原理、常见应用以及如何使用它们。 串口通信是计算机与外部设备之间的一种古老但仍然广泛使用的通信方式。传统的串口,如COM1、COM2等,是通过物理接口连接到计算机主板...
总的来说,vspm虚拟串口工具是现代计算机环境下解决串口通信问题的重要工具,它不仅弥补了硬件接口的不足,也为开发者提供了强大的调试和测试手段。通过虚拟化技术和网络传输,vspm工具在保持与传统串口兼容的同时,...
虚拟串口工具是一种在计算机上模拟物理串口的技术,它为用户提供额外的串行通信端口,以便在没有物理串口或物理串口不足的情况下进行设备调试和数据传输。汉化版的虚拟串口工具是专为中国用户设计的,解决了语言障碍...
在实际应用中,虚拟串口工具通常配合串口调试助手一起使用,例如使用RealTerm、串口调试精灵等。用户可以通过虚拟串口工具创建一个虚拟串口,然后在调试助手中设置相应的串口参数,如波特率、数据位、停止位和校验位...
虚拟串口工具是一种软件应用程序,它能够模拟物理串口的行为,为用户提供额外的串行通信接口,无需硬件上的实际串口。在许多情况下,当硬件串口不足或者需要进行特定测试时,虚拟串口工具非常实用。这个"虚拟串口...
《Windows虚拟串口工具详解与应用》 在现代计算机技术中,串口通信因其简单、稳定的特点,在设备间的数据传输中依然占据着重要的地位。然而,物理串口的数量往往受到硬件限制,无法满足多设备同时通信的需求。为了...
虚拟串口工具是一种软件技术,它能够为计算机操作系统创建虚拟的串行通信端口,以模拟物理串口的功能。...无论你是开发者还是普通用户,掌握虚拟串口工具的使用,都能让你在处理串口通信问题时游刃有余。
PLC远程下载调试虚拟串口工具用于PLC远程下载、PLC远程调试、PLC远程维护。通过PLC远程下载调试虚拟串口工具,工程师不需要到现场,可以远程通过网络,配合PLC远程网关D225等设备对PLC进行维护。
VSPD(Virtual Serial Port Driver)是一款强大的虚拟串口工具,专为软件开发和测试而设计。它允许用户创建虚拟串行端口对,模拟实际硬件串口的行为,为应用程序提供了一个灵活的测试环境。在实际操作中,硬件串口...
在使用虚拟串口工具时,首先需要安装并运行该软件,然后根据需求创建所需的虚拟串口。通常,软件界面会列出所有已有的物理串口以及创建的虚拟串口,用户可以选择将虚拟串口映射到某个特定的物理串口或者与其他虚拟...
下面我们将深入探讨VSPD虚拟串口工具的核心功能、工作原理、应用场景以及如何使用。 1. **核心功能**: - **创建虚拟串口**:VSPD能创建一对或多个虚拟串口,这些虚拟串口可以像真实串口一样进行数据传输。 - **...