我正在为Android操作系统开发一个简单的应用程序。它需要与Arduino Uno可靠地通信。我在USBStudio上使用了USBSerialDriver。我正在获取数据,但有丢弃的字符。我的代码如下。当我使用Google Play上提供的应用时,我得到相同的结果。除了一个可以运行Arduino-Communicator的应用程序。我唯一想到的是,在Arduino-Communicator中,他们为驱动程序设置了一些设置字节来配置Arduino接口。这可能使用我目前使用的库吗?
// Get UsbManager
UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);
// Find the first available driver.
UsbSerialDriver arduinoDrv = UsbSerialProber.acquire(manager);
// setup serial port
if (arduinoDrv != null) {
// establish connection
try {
arduinoDrv.open();
} catch (IOException e) {
e.printStackTrace();
}
try {
arduinoDrv.setBaudRate(9600);
} catch (IOException e) {
e.printStackTrace();
}
try {
numBytesRead = arduinoDrv.read(rxBuff, 500);
} catch (IOException e) {
e.printStackTrace();
}
rxBuff[numBytesRead]=0;
这是Arduino-Communicator中的代码。我只是不知道它是否有助于丢弃数据包以及如何使用上面的USBSerialdriver实现它。
// Arduino USB serial converter setup
// Set control line state
mUsbConnection.controlTransfer(0x21, 0x22, 0, 0, null, 0, 0);
// Set line encoding.
mUsbConnection.controlTransfer(0x21, 0x20, 0, 0, getLineEncoding(9600), 7, 0);
谢谢!