0

我正在尝试从 COM 端口读取数据。我使用了提高数据传输速度的 PL2303TA 转换器。我的数据传输速度是 3Mpbs,我正在寻找以这种速度读取数据的样本。我用 C# 编写了一个程序并使用“while”循环来读取接收数据。但有些数据已经丢失。

int _max = 50000; // max sample
SerialPort port = new SerialPort("COM4",
      3000000, Parity.None, 8, StopBits.One);
port.Open();
List<string> slist = new List<string>();
while(true)
{
   string sdata = port.ReadLine();
   slist.Add(sdata);
   if (slist.Count > _max)
      break;
}

我的设备发送数据序列如下:

 1,2,3,...,7000,1,2,3...,7000,1,2,3

通过这段代码,我收到这样的数据:

 1,3,5,...,6999,1,3,5,...,6999,1,3,5

(我的设备是“ARM微控制器AT91SAM7S64-AU”并通过换行符发送每个数字:“\n”)

如何提高阅读速度?

谢谢。

PL2303TA USB 转串行桥控制器 http://www.prolific.com.tw/US/ShowProduct.aspx?p_id=153&pcid=41

4

1 回答 1

0

这听起来不像是软件问题,而是硬件问题。在使用如此高的速度时,请确保 uart 的线尽可能靠近。

当干扰仍然太高时,另一种选择是使用双绞线和屏蔽线。

如果您有示波器,请检查信号边缘。我认为它们不再具有干净的矩形形状。我不知道具体的芯片或电路板,但有些电路板还支持称为过采样的东西。如果信号上有噪声,这可能有助于对串行信号进行采样,因为它对单个位进行多次采样并使用平均值来确定单个位状态。

于 2021-06-09T20:58:11.370 回答