繁体   English   中英

通过串口发送byte []缓冲区

[英]Sending a byte[] buffer via serial

我有一个工作代码,我通过FileOutputStream outputstream.write方法发送以下byte []数组

private void SendPacket(int numBytes)
    {   
        try {
            if(outputstream != null){

                outputstream.write(writeusbdata,0,8);

            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

我收到了

14:50:02.374 [<--------] RECV: 30 31 20 30 36 20 34 45 

这很好,但当我用writeusbdata替换

byte[] writeusbdata = {(byte) 01, (byte) 06, (byte) 78, (byte) 140, (byte) 00, (byte) 01, (byte) 158, (byte) 201};
outputstream.write(writeusbdata,0,8);

我收到

15:05:50.414 [<--------] RECV: 06 78 F8 98 E0 E0 00 06 F8 78 18 

- 为什么我收到的字节多于应有的字节数? 为什么它们与缓冲区不同?

- 发送这个byte []缓冲区的合适方法是什么?

请注意:这是一个Android附件应用程序

啊哈! 由我自己解决。

这是在发送byte[] buffer之前生成byte[] buffer的正确方法

byte[] b = {(byte) 01, (byte) 06, (byte) 78, (byte) 140, (byte) 00, (byte) 01, (byte) 158, (byte) 201};

        /*prepare the packet to be sent*/
        for(int count = 0;count<b.length;count++)
        {   
            writeusbdata[count] = b[count];
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM