我让微控制器通过回车成功地将数据通过回车发送到终端,以指示何时开始新的数据集。我这样配置我的串口连接:
s_connection = serial('/path/to/device', 'BaudRate', 9600);
s_connection.BytesAvailableFcnMode = 'terminator';
s_connection.BytesAvailableFcn = @updatePlot;
s_connection.Terminator = 'CR';
此代码成功调用了我的BytesAvailableFcn
一次,然后再也没有。在我的BytesAvailableFcn
我尝试使用fscanf
和fgetl
来发送正在发送的文本,这两种方法都有效。但是,问题是我似乎无法获得设备发送的下一行(由回车符终止)以便我的Matlab代码接收,或者至少它没有触发我的BytesAvailableFcn
。
每次通过打开的串行连接发送回车时,如何调用BytesAvailableFcn
(或其他一些函数)?
答案 0 :(得分:1)
未读取终结器字符,因为输入缓冲区不够大。 Matlab默认输入缓冲区大小为512,并将其设置为更大的值很简单:
s_connection.InputBufferSize = 4096;
任何大于收到的输入的值都将解决问题。