【发布时间】:2018-04-03 11:42:47
【问题描述】:
我有两个与串行 rs232 通信的程序 1.用c#编写,使用pf SerialPort类 2. java写的,使用librxtx - SerialPort类
两者:BaudRate - 9600、Parity-None、StopBits - 1、DataBits - 8
它们与始终发送相同数据的同一设备通信
在 c# 中,我得到以下 6 个字节:255,98,144,19,1,0 在java中我得到以下6个字节:-1,98,-112,19,1,0
c# 代码是正确的。
这里是c#的代码:
m_serialPort = new SerialPort("COM15", 9600, Parity.None, 8, StopBits.One);
m_serialPort.DataReceived += SPDataRecieved;
m_serialPort.Open();
public override void SPDataRecieved(object sender, SerialDataReceivedEventArgs e)
{
try
{
Thread.Sleep(80);
byte[] toBytes = new byte[6];
m_serialPort.Read(toBytes, 0, 6);
}
catch (Exception ex)
{
}
}
}
这里是java的代码:
m_SerialPort = (SerialPort) commPort;
m_SerialPort.setSerialPortParams
(9600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);
InputStream in = m_SerialPort.getInputStream();
byte[] buffer = new byte[6];
int len = -1;
Thread.sleep(80);
len = in.read(buffer,0,6);
我需要在 java 代码中添加什么以使结果相同?
【问题讨论】:
标签: java c# serial-communication