函数的原型如下(引自MSDN)
SerialPort.Read 方法 (char[], Int32, Int32)
从 SerialPort 输入缓冲区中读取大量字符,然后将这些字符写入到一个字符数组中指定的偏移量处。我的使用如下:serialPort1.Read(pubData.data, 0, serialPort1.BytesToRead);但是现在因为需要,我把pubData.data改成了二维数组,初始化为:public static byte [][] data = new byte[TotalChannels][TotalSamples * 3]; //从串口返回来的所有数据字节 数量:单道总样点数×3
此时,把串口读取函数改为serialPort1.Read(pubData.data[0], 0, serialPort1.BytesToRead);编译唔错。运行到该语句时提示:
缓冲区不能为空。请问我的做法有什么问题,为什么会这样?问题应该出在二维数组的引用上面。
请大家指点。