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

Send byte array on serial port out put stream

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

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

你发送的每个0x0D后面插入的0x0A是回车return转换

终端将“\r”转换为“\r\n”。它为每个马车添加一个换行字符 return.

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

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