我正在使用 RXTX-2.1-7 并试图在 Windows 中读取 COM 端口。与使用 PuTTY 接收的数据相比,我发现接收到的数据存在一些不一致。
PuTTY中收到的数据:
a5 5a 0b 05 10 00 00 00 00 27 d4 73 30 ae
但是使用 RXTX 接收到的数据完全相同:
3f 5a 0b 0510 00 00 00 00 27 3f 73 30 3f
似乎所有接收到的大于至少的字节a0
都被读取为3f
. 这是我正在使用的代码的相关部分
char[] buffer = new char[14];
int i=0;
Arrays.fill(buffer,(char)0);
while (i<14)
{
buffer[i++] = (char)charReader.read(); /*DOUBT*/
}
/*System.out.println(Arrays.toString(buffer));*/
String bufferString = new String(buffer);
System.out.println(String.format("%x ", new BigInteger(bufferString.getBytes("ISO-8859-1"))));
并且charReader
是一个InputStreamReader
打开的串口。我还检查了(char)
标记行中的类型转换/*DOUBT*/
是否是罪魁祸首,但是没有转换的代码我仍然得到不一致。
65533, 90, 11, 5, 16, 0, 0, 0, 0, 39, 65533, 115, 48, 65533
任何想法为什么我会出现这种不一致?