我正在与三星t365(Android4.4.4)合作,它与一个uart进行了很好的通信。但是我需要使用多个uart来与一个android设备的一个端口进行通信。当我使用usb (SLİ、NK、SL-U602USB2.0)和使用来自play市场的uart术语应用程序时,我可以通过选择端口看到两个uart。问题是:
谢谢。
发布于 2016-07-20 09:53:37
尝试使用android-串行口-api库。
按照RS232标准,每个COM端口只允许一个设备。
发布于 2016-07-26 07:04:23
在FTdriver.java中,有一种可以帮助连接多个设备的begin方法。但是,默认情况下,它是为第一个设备设置的。正如您在评论行中所看到的。它应该修改为多连接。参考资料:https://github.com/ksksue/FTDriver/blob/master/FTDriver/src/jp/ksksue/driver/serial/FTDriver.java
// 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;
}https://stackoverflow.com/questions/38477350
复制相似问题