【发布时间】:2014-10-21 04:03:25
【问题描述】:
我想使用 RS232 与 DSP 通信,所以我使用 System.IO.SerialPort 来实现这一点。一切都很顺利,除了阅读表现。
每200ms,端口可以接收一个144字节的包。但在测试中,应用程序几乎跳过所有其他包。我尝试在控制台中打印系统时间。令我惊讶的是,下面的代码(当长度 = 140 时)花了我超过 200 毫秒。它让应用程序无法及时处理数据。
我做错了什么吗?
端口属性:
波特率 = 9600
奇偶校验 = 无
StopBits = 一
private byte[] ReadBytesInSpicifiedLength(int length)
{
byte[] des = new byte[length];
for (int i = 0; i < length; i++)
{
des[i] = (byte)serialPort.ReadByte();
}
return des;
}
【问题讨论】:
-
串行端口可以追溯到石器时代。波特率的传统选择是 9600 波特,它移动数据的速度不能超过每字节约 1 毫秒。您使用的端口设置当然不是一个小细节,您可以忽略这样的问题。
-
@Hans:所描述的数据速率是每秒 720 字节,相当于 9600 波特(每秒 960 字节),还有一些空间。
标签: c# serial-port