Java 从连接USB的终端接收数据->;RS232
我正在开发一个java应用程序,它需要与一个连接usb-to-rs232转换器的终端进行通信 现在我可以连接设备并发送数据!我可以确保终端接收到发送的数据,因为当终端接收到某些信息时,led会发光 我正在使用(链接:)。。。但由于某种原因,我从未从终端收到任何数据 我的代码(JSSC代码):Java 从连接USB的终端接收数据->;RS232,java,serial-port,jssc,Java,Serial Port,Jssc,我正在开发一个java应用程序,它需要与一个连接usb-to-rs232转换器的终端进行通信 现在我可以连接设备并发送数据!我可以确保终端接收到发送的数据,因为当终端接收到某些信息时,led会发光 我正在使用(链接:)。。。但由于某种原因,我从未从终端收到任何数据 我的代码(JSSC代码): 有人能帮我解决这个问题吗?您是否打算将硬件流控制与USB-UART一起使用。如果是,尝试设置DTR,然后设置RTS。这告诉第一端,第二端已准备好进行通信。此外,没有收到10个字节或根本没有收到任何数据。还可
有人能帮我解决这个问题吗?您是否打算将硬件流控制与USB-UART一起使用。如果是,尝试设置DTR,然后设置RTS。这告诉第一端,第二端已准备好进行通信。此外,没有收到10个字节或根本没有收到任何数据。还可以考虑另一个串行端口通信库,如scm
public class Main
{
static SerialPort serialPort;
public static void main(String[] args) throws InterruptedException
{
serialPort = new SerialPort("COM7");
try
{
serialPort.openPort();//Open port
serialPort.setParams(9600, 8, 1, 0);//Set params
int mask = SerialPort.MASK_RXCHAR + SerialPort.MASK_CTS + SerialPort.MASK_DSR;//Prepare mask
serialPort.setEventsMask(mask);//Set mask
serialPort.addEventListener(new SerialPortReader());//Add SerialPortEventListener
serialPort.writeByte( (byte)0x02 );
TimeUnit.SECONDS.sleep( 10 );
byte[] b = serialPort.readBytes();
System.out.println( "bytes " + b );
}
catch (SerialPortException ex)
{
System.out.println(ex);
}
}
/*
* In this class must implement the method serialEvent, through it we learn about
* events that happened to our port. But we will not report on all events but only
* those that we put in the mask. In this case the arrival of the data and change the
* status lines CTS and DSR
*/
static class SerialPortReader implements SerialPortEventListener
{
public void serialEvent(SerialPortEvent event)
{
System.out.println( "Event raised!" );
if(event.isRXCHAR())
{//If data is available
if(event.getEventValue() == 10)
{//Check bytes count in the input buffer
//Read data, if 10 bytes available
try
{
byte buffer[] = serialPort.readBytes(10);
}
catch (SerialPortException ex)
{
System.out.println(ex);
}
}
}
else if(event.isCTS())
{//If CTS line has changed state
if(event.getEventValue() == 1)
{//If line is ON
System.out.println("CTS - ON");
}
else
{
System.out.println("CTS - OFF");
}
}
else if(event.isDSR())
{///If DSR line has changed state
if(event.getEventValue() == 1)
{//If line is ON
System.out.println("DSR - ON");
}
else
{
System.out.println("DSR - OFF");
}
}
}
}
}