Java_Tang 2017-05-22 10:06 采纳率: 0%
浏览 1456

三星S6无法读取到Usb数据

通过UsbDeviceConnection读取不到三星S6等系列的Usb串口数据,其它如华为、Oppo等都可以
正常读到,这是为啥呢?
打开Usb接口代码如下:

 showInfo("开始寻找端口");
        int interfaceCount = targetdevice.getInterfaceCount();
        showInfo("端口数量:"+interfaceCount);
        for (int interfaceIndex = 0; interfaceIndex < interfaceCount; interfaceIndex++) {
            UsbInterface usbInterface = targetdevice.getInterface(interfaceIndex);
            showUSBClass(usbInterface);
            if ((UsbConstants.USB_CLASS_CDC_DATA != usbInterface.getInterfaceClass())
                    && (UsbConstants.USB_CLASS_COMM != usbInterface.getInterfaceClass())
                    && UsbConstants.USB_CLASS_VENDOR_SPEC!=usbInterface.getInterfaceClass()) {
                continue;
            }

            int endpointCount = usbInterface.getEndpointCount();
            showInfo("端点数量:"+endpointCount);
            for (int i = 0; i < endpointCount; i++) {
                UsbEndpoint ep = usbInterface.getEndpoint(i);
                if (ep.getType() == UsbConstants.USB_ENDPOINT_XFER_BULK) {
                    if (ep.getDirection() == UsbConstants.USB_DIR_OUT) {
                        mUsbEndpointIn = ep;
                    } else {
                        mUsbEndpointOut = ep;
                    }
                    showUsbpointType(ep);
                }
            }

            if ((null == mUsbEndpointIn) || (null == mUsbEndpointOut)) {
                showInfo("endpoint is null");
                mUsbEndpointIn = null;
                mUsbEndpointOut = null;
                usbInterface = null;
            } else {
                showInfo("out: " + mUsbEndpointOut + ",in: " +
                        mUsbEndpointIn);
                mInterface = usbInterface;
                mDeviceConnection = usbManager.openDevice(targetdevice);
                beginTest();
                break;
            }
        }

发送读取代码如下:

     int ret;
        ret = mDeviceConnection.bulkTransfer(mUsbEndpointOut, bytes, bytes.length, 5000);
        byte[] receiveytes = new byte[32];   //根据设备实际情况写数据大小
        ret = mDeviceConnection.bulkTransfer(mUsbEndpointIn, receiveytes, receiveytes.length,
  • 写回答

1条回答

  • ii哀情 2017-05-22 10:38
    关注

    debug查看下断点 锁定问题出现在那一行代码

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器