首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >以编程方式选择两个Uart(ft232r)

以编程方式选择两个Uart(ft232r)
EN

Stack Overflow用户
提问于 2016-07-20 09:24:20
回答 2查看 467关注 0票数 0

我正在与三星t365(Android4.4.4)合作,它与一个uart进行了很好的通信。但是我需要使用多个uart来与一个android设备的一个端口进行通信。当我使用usb (SLİ、NK、SL-U602USB2.0)和使用来自play市场的uart术语应用程序时,我可以通过选择端口看到两个uart。问题是:

  • 是否可以以编程方式选择和执行com端口,
  • 什么是挑战(使用多个uarts)

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2016-07-20 09:53:37

尝试使用android-串行口-api库。

按照RS232标准,每个COM端口只允许一个设备。

票数 0
EN

Stack Overflow用户

发布于 2016-07-26 07:04:23

在FTdriver.java中,有一种可以帮助连接多个设备的begin方法。但是,默认情况下,它是为第一个设备设置的。正如您在评论行中所看到的。它应该修改为多连接。参考资料:https://github.com/ksksue/FTDriver/blob/master/FTDriver/src/jp/ksksue/driver/serial/FTDriver.java

代码语言:javascript
复制
// Open an FTDI USB Device
        public boolean begin(int baudrate) {
            for (UsbDevice device : mManager.getDeviceList().values()) {
                Log.i(TAG, "Devices : " + device.toString());

                getPermission(device);
                if (!mManager.hasPermission(device)) {
                    return false;
                }

                // TODO: support any connections(current version find a first
                // device)
                if (getUsbInterfaces(device)) {
                    break;
                }
            }

            if (mSelectedDeviceInfo == null) {
                return false;
            }

            if (mDevice == null) {
                return false;
            }

            if (mDevice.getDeviceClass() == UsbConstants.USB_CLASS_COMM) {
                isCDC = true;
            } else {
                isCDC = false;
            }

            mFTDIEndpointIN = new UsbEndpoint[mSelectedDeviceInfo.mNumOfChannels];
            mFTDIEndpointOUT = new UsbEndpoint[mSelectedDeviceInfo.mNumOfChannels];

            if (isCDC) {
                if (!getCdcEndpoint()) {
                    return false;
                }
            } else {
                if (!setFTDIEndpoints(mInterface,
                        mSelectedDeviceInfo.mNumOfChannels)) {
                    return false;
                }
            }

            if (isCDC) {
                initCdcAcm(mDeviceConnection, baudrate);
            } else {
                initFTDIChip(mDeviceConnection, baudrate);
            }

            Log.i(TAG, "Device Serial : " + mDeviceConnection.getSerial());

            return true;
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38477350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档