在串口输出流发送字节数组

时间:2016-01-17 13:17:55

标签: java android serial-port

当我想用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" !! 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

终端可能处于文本读取模式,而不是二进制读取模式。

在您发送的每个0x0D之后插入的0x0A是回车转换。

终端将“\ r”转换为“\ r \ n”。它为每个回车符添加换行符。

终端将每个0D转换为0D 0A。

在ftp协议中可以找到相同的feature。您告诉客户如何传输文件:文本或二进制模式。