【发布时间】:2014-08-11 19:48:24
【问题描述】:
我有一个硬件以以下形式向 com 端口发送数据:“HxxxxVxxxx”,其中 x = 数字:例如:(H1234V5678)。
我想问,我应该设置什么采样率才能尽快发送。 (波特率 9600,8 位,奇偶校验:无,停止位:1)。 用 Java 或 C# 编写的程序能够接收这些数据的整体,而不是部分。
每22ms发送一次数据,并接收这样的数据时:
2014-08-11 18:48:39.669 56 36 36 37
2014-08-11 18:48:39.674 48 30 0D 0A
2014-08-11 18:48:39.687 56 36
2014-08-11 18:48:39.692 36 39 48 30
2014-08-11 18:48:39.696 0D 0A
2014-08-11 18:48:39.712 56 36 36 38
2014-08-11 18:48:39.716 48 30 0D 0A
2014-08-11 18:48:39.732 56 36
2014-08-11 18:48:39.737 36 37 48 30
2014-08-11 18:48:39.742 0D 0A
2014-08-11 18:48:39.753 56
但我想:
2014-08-11 18:48:39.600 56 36 36 37 48 30 0D 0A
2014-08-11 18:48:39.622 56 36 36 37 48 30 0D 0A
2014-08-11 18:48:39.644 56 36 36 37 48 30 0D 0A
2014-08-11 18:48:39.666 56 36 36 37 48 30 0D 0A
2014-08-11 18:48:39.688 56 36 36 37 48 30 0D 0A
c#代码:
private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
string timestamp = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss.fff");
int bytes = comport.BytesToRead;
byte[] buffer = new byte[bytes];
comport.Read(buffer, 0, bytes);
File.AppendAllText(@"c:\file.txt", timestamp + " "+ByteArrayToHexString(buffer) +"\n" + Environment.NewLine);
}
【问题讨论】:
标签: c# serial-port port