Matlab:逐行读取

时间:2015-04-20 02:03:46

标签: matlab

我让微控制器通过回车成功地将数据通过回车发送到终端,以指示何时开始新的数据集。我这样配置我的串口连接:

s_connection = serial('/path/to/device', 'BaudRate', 9600);
s_connection.BytesAvailableFcnMode = 'terminator';
s_connection.BytesAvailableFcn = @updatePlot;
s_connection.Terminator = 'CR';

此代码成功调用了我的BytesAvailableFcn一次,然后再也没有。在我的BytesAvailableFcn我尝试使用fscanffgetl来发送正在发送的文本,这两种方法都有效。但是,问题是我似乎无法获得设备发送的下一行(由回车符终止)以便我的Matlab代码接收,或者至少它没有触发我的BytesAvailableFcn

每次通过打开的串行连接发送回车时,如何调用BytesAvailableFcn(或其他一些函数)?

1 个答案:

答案 0 :(得分:1)

未读取终结器字符,因为输入缓冲区不够大。 Matlab默认输入缓冲区大小为512,并将其设置为更大的值很简单:

s_connection.InputBufferSize = 4096;

任何大于收到的输入的值都将解决问题。