C#在串行端口中接收确定的字节数

时间:2018-04-03 14:11:24

标签: c# serial-port

我有一个FPGA发送我的C#programm总是4字节。我的c#程序接收4个字节但等待直到发生serialPort超时事件,但FPGA想要发送接下来的4个字节。为了加快这个过程,我想知道如何配置serialPort(msdn serialPort类)函数readByte只接收4个字节而不等待超时。

或者我应该使用readLine并在发送4个字节后发送一行?行尾的具体Ascii代码是什么?我找到了0D 0A。使用哪一个OD或0A来表示线路末端是否重要?

2 个答案:

答案 0 :(得分:0)

根据文档hereReadByte函数读取单个字节。如果抛出TimeoutExcepion,则必须调用该函数四次以上,否则FPGA不会发送四个字节。

要读取四个字节,您应该使用类似:

 int[] data = new int[4];
 for (int i = 0; i < 4; i++)
 {
     data[i] = port.ReadByte();
 }

答案 1 :(得分:0)

如果你一次只想要4个字节,请使用这样的SerialPort.Read()。

@property