安卓系统上的USB主机模式在连接到串行适配器时接收奇怪的前导数据字节



虽然我的例程在Android设备和PC之间发送和接收数据没有任何问题,但我有一个奇怪的问题。

我只在Android端收到的所有消息都有两个前导字节,它们不是来自我的任何数据。

因此,当我将01 02 03作为十六进制从PC发送到Android设备时,我会收到"B1 60 01 20 03",这在所有PC或其他设备上都会发生-所以它一定在我的读取例程中的某个地方-因为我尝试的其他Android应用程序不会接收到"B1 60"前导字节。

这就是我从USB读取的方式:

lenOfPartialChunksBuffer = mDeviceConnection.bulkTransfer(
            mFTDIEndpointIN, bufferForPartialChunksOfAnswer, 4096,
            commMsg.timeoutForUSBBulkTransfer);

有人经历过类似的事情吗?

ps-无论我连接到哪个设备的USB串行适配器-我一直得到这2个额外的字节

我是一个像你一样的新手android程序员。我能告诉你的可能与你的安卓手机/平板电脑有关。我建议,如果您可以保留协议中的两个字节,只需在这两个字节上移动即可。我就是这么做的,效果很好。

最新更新