使用 C# 以更高的波特率从串口接收数据

问题描述 投票:0回答:0

我正在尝试通过 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");
}
c# .net winforms serial-port hardware-interface
© www.soinside.com 2019 - 2024. All rights reserved.