我知道帖子与这一点有关但它对我没有帮助。我有一个运行Android的Wandboard,它通过USB端口连接到PC。我使用SerialPort .Net类来读写数据。它是设计为请求响应方式.PC将在5秒内请求数据,因此它将写入端口并等待Wandboard在1秒内响应。如果它响应然后通过SerialPort读取方法它将读取数据等等过程将继续。我面临的问题是我写入端口的数据与wandboard的所需响应一起回显。我写入端口的数据首先在顺序中。无论我做什么总是回复我的书面数据。为了得到一个临时的解决方案,我正在编写数据并在最后添加新行,所以当我读帖子时,因为我得到回音,我跳过数据直到我得到的第一个换行符。 / p>
我知道这不是一个好方法,但我已经尝试了足够多,并且无法阻止端口回复我写的内容。非常感谢任何帮助。
这是写作和阅读的代码。
/// <summary>
/// Writes and receives data from AP board
/// </summary>
private void RequestAndResponse()
{
while (true)
{
try
{
if (myserialPort2 != null)
{
int iwriteSize = 5;
if ( !myserialPort2.IsOpen)
{
myserialPort2.Open();
}
byte[] bytearrayOfSendCommand = new byte[iwriteSize];
bytearrayOfSendCommand[0] = 0x48;
bytearrayOfSendCommand[1] = 0x41;
bytearrayOfSendCommand[2] = 0x41;
bytearrayOfSendCommand[3] = 0x42;
bytearrayOfSendCommand[4] = 0x0A;
myserialPort2.Write(bytearrayOfSendCommand, 0, iwriteSize);
int size = myserialPort2.BytesToRead;
char[] bContent = new char[size];
var buffsize = myserialPort2.ReadBufferSize;
myserialPort2.Read(bContent, 0, size);
lock (objLocker)
{
char[] bContentTemp = bContent;
// ConsumePacketData(bContentTemp);
}
Thread.Sleep(2 * 1000);
}
}
catch(Exception)
{
//to be implemented later
}
}
}
答案 0 :(得分:0)
请检查Echo选项的USB转串口驱动程序设置。