我正在尝试通过USB发送和接收数据,我的设备,Acer Iconia A500具有连接到设备所需的一切和一切,这很好并且工作正常,但是当我尝试发送和接收数据时,它不会表现为预期 . 这是我的代码
for( ; ; ) { //this is the main loop for transferring
String get = "$getPos";
byte[] getBytes = get.getBytes();
conn.bulkTransfer( epOUT, getBytes, getBytes.length, 500 );
try {
Thread.sleep( 500 );
byte[] buffer = new byte[4096];
conn.bulkTransfer( epIN, buffer, 4096, 500 );
StringBuilder byStr = new StringBuilder();
for( int i = 0; i < buffer.length; i++ ) {
if( buffer[i] != 0 ) {
byStr.append( buffer[i] + ", " );
}
}
l( byStr );
}
catch( InterruptedException e ) {
e.printStackTrace();
}
if( mStop ) {
mStopped = true;
return;
}
l( "sent " + counter );
counter++;
counter = (byte)( counter % 16 );
}
它的意思是返回一个大约80个字符长的字节数组,但它只返回两个字节,分别为1和96,如果USB设备端有错误,它仍会返回两个以上的字节 . 我的代码是否接近正确?我根据服务器框的USB到串行文章 .
1 回答
我试图通过错误的波特率发送数据 .
这是有效的代码 . 将它发布给使用FTDI设备并需要帮助的每个人 .