android中usb数据通信速率慢问题解决办法

用到android与芯片通过usb通信,发现有延迟,最高50ms,再高有数据丢失,网上的解决办法:

这个增加fifo的缓冲区

https://stackoverflow.com/questions/9405710/android-losing-incoming-hi-speed-usb-data

 

这个用usbrequest

UsbRequest.queue(..)100%无故障地工作吗? 我也遇到了那种问题。 - support_ms 2016年 3月4日11:17

这个轮训下发命令:

我做同样的事情时,使用这样的东西真的帮助了我,我发现你必须做某种类型的while循环。

对于我的设备,我有64个字节的数据包进给我,数据包将是两个控制字节和62个数据,所以对于我的传输,我不得不做类似的事情

 StringBuilder sb = new StringBuilder(); while(bulkTransfer(UsbEndpoint endpoint, byte[] buffer, int length, int timeout) > 2){ for(int i = 2; i < buffer.length(); i++){ sb.append((char) buffer[i]); } } 

这些线条对我来说很有用,我有完全相同的问题,这就是我修复它的方法。 如果您需要,我会提供更多信息。 只是评论:)。 我知道这对我来说真的很令人沮丧。 我使用Acer Iconia A500与Android 4.0.3顺便说一句

https://stackoverflow.com/questions/10889461/android-usb-host-api-bulk-transfer-buffer-size?noredirect=1&lq=1

 

【android之USB通信】android之USB数据传输

这个说有四总传输方式,但是都没有相应说明

https://blog.csdn.net/ariesuk/article/details/69383577

 

这段代码是中断传输吗?

mHandler = new Handler() {
            public void handleMessage(Message msg) {                    
                if (msg.what == 1) { // 1 means send a 64 bytes array in msg.obj
                    ByteBuffer buffer = ByteBuffer.allocate(BUFFER_SIZE);
                    final byte[] array = (byte[]) msg.obj;                      
                    buffer.clear();
                    buffer.put( array );
                    UsbRequest outRequest = new UsbRequest();
                    outRequest.initialize(mUsbConnection, mUsbEndpointOut);
                    outRequest.queue(buffer, BUFFER_SIZE);
                    Log.d(L.TAG, "Queueing request:"+outRequest);
                    // don't do a mConnection.requestWait() here, ReceiveThread is already listening 
                } else if (msg.what == 2) { // 2 means exit
                    Log.d(L.TAG,  "SenderThread::handleMessage(): terminate");
                    Looper.myLooper().quit();
                } else {
                    Log.e(L.TAG, "SenderThread::handleMessage(): unknow message type: " + msg.what);
                }
            }
        };

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值