java 串口通信 使接收的数据显示为数字
串口通信,使用串口调试助手显示为十六进制数字,使用java却有规律地显示为特殊符号,比如对照十六进制数,低于21显示“空格”,高于21显示“!”。请问这是什么原因?是因为没有转码吗?该怎样解决,使其显示为十六进制数或十进制数?附接收部分代码如下:
InputStream inputStream;
Reader reader;
char[] readBuffer = new char[20];
inputStream = serialPort.getInputStream();
reader=new InputStreamReader(inputStream,"Unicode") ;//在这部分更改字符集的话,会显示不同的特殊符号
/* 从线路上读取数据流 */
reader.read(readBuffer);
str=new String(readBuffer);
/*接收到的数据存放到文本区中*/
in_message.append(str+"/n");