当我想用java在串口流上发送字节数组时,在目标设备上我收到不同的结果!!!
byte[] sendingPack = new byte[7];
sendingPack[0] = 0x6E;
sendingPack[1] = 0x55;
sendingPack[2] = (byte) 0x0D;
sendingPack[3] = (byte) (1 & 0x000000FF);
sendingPack[4] = 0x01;
sendingPack[5] = 0x0D;
sendingPack[6] = (byte) 0xAA;
getSendBuffer().getOutputStream().write(sendingPack);
sending array : byte[]{0x6E,0x55,0x0D,0x01,0x01,0x0D,0xAA}
receive result array : 6E 55 0D 0A 01 01 0D 0A AA
在CodeVisionAVR终端上的我收到" 0A" !! 我该如何解决这个问题?
答案 0 :(得分:2)
终端可能处于文本读取模式,而不是二进制读取模式。
在您发送的每个0x0D之后插入的0x0A是回车转换。
终端将“\ r”转换为“\ r \ n”。它为每个回车符添加换行符。
终端将每个0D转换为0D 0A。
在ftp协议中可以找到相同的feature
。您告诉客户如何传输文件:文本或二进制模式。