我正在尝试通过 USB 上的虚拟 COM 端口从设备接收数据。该设备基本上是一个微控制器,可以连续传输几个字节的数据。波特率为921600。我可以在超级终端上看到如下图所示的数据:
我写了一个小代码来接收这个数据:
char[] charData = new char[1024];
void ReadData()
{
while (true)
{
Stopwatch sw = new Stopwatch();
sw.Start();
for (int i = 0; i < 1024; i++)
{
charData[i] = (char)serialPort1.ReadChar();
}
sw.Stop();
Console.WriteLine(sw.ElapsedMilliseconds);
textBox1.Text = new string(charData);
}
}
我已经通过线程调用了这段代码。此代码在使用较低波特率时工作正常(即 9600,尝试使用另一个微控制器以较低波特率模拟我想要的数据)。但是无法以更高的波特率工作。该代码只是简单地不接收任何数据,也不会产生任何异常。
请帮我解决这个问题。非常感谢代码示例!
谢谢。
编辑:
串口配置:
微控制器代码: (微控制器是Arduino Due这里有代码供参考):
void setup()
{
SerialUSB.begin(921600);
}
void loop()
{
SerialUSB.print("#A1G-5G11bng1");
}