Matlab 串行输入缓冲区大小
我试图读取来自Arduino的大量数据,我将输入缓冲区设置为500000,以确保它可以处理所有这些数据。我的数据是4个传感器的读数,每个样本的频率为250 Hz。在默认的缓冲区大小(712)下,当我实时绘制读数时,我经常遇到障碍,样本变得混乱,这使得绘制变得疯狂。我通过将缓冲区大小增加到50000来解决这个问题。但现在,这将工作一段时间,但如果我想运行它15分钟,我会在5分钟后得到同样的错误行为,另外,绘图会变慢。我确实有一些处理代码以及实时绘图,但它不应该像这样有这样的bi缓冲区。我想知道缓冲区是否包含从开始到满的所有数据,还是在满时继续擦除旧数据(知道我已经将其保存在另一个向量中并绘制了它)。我真的不明白为什么这种事一直发生 问候Matlab 串行输入缓冲区大小,matlab,buffer,Matlab,Buffer,我试图读取来自Arduino的大量数据,我将输入缓冲区设置为500000,以确保它可以处理所有这些数据。我的数据是4个传感器的读数,每个样本的频率为250 Hz。在默认的缓冲区大小(712)下,当我实时绘制读数时,我经常遇到障碍,样本变得混乱,这使得绘制变得疯狂。我通过将缓冲区大小增加到50000来解决这个问题。但现在,这将工作一段时间,但如果我想运行它15分钟,我会在5分钟后得到同样的错误行为,另外,绘图会变慢。我确实有一些处理代码以及实时绘图,但它不应该像这样有这样的bi缓冲区。我想知道缓冲
I.H当缓冲区满时,一旦您获得新数据,它就会删除旧数据。您看到的行为是因为您的处理和打印速度比数据流慢
- 尽量确保优化处理过程
- 确保已通过“drawnow”完成绘图。这样,您可以确定,如果队列中有任何内容,则不会执行它
- 尽量避免保存和保留所有数据
- 如果问题仍然存在,您可以尝试实现一个计时器,以确保与读取数据一致