在使用MATLAB中scanf()读取单片机串口发送的数据时出现了如下图的warning,而且每次接收串口数据都要好久:
处理办法:

在每行最后的位置加了\n换行符号,这样就不会出现警告,而且串口传输数据的速度几乎是实时的。
分析:
此处使用的是fscanf(),在MATLAB中help打开函数解释,

上图可知sizeA是指,接收数组的维度。

个人理解,警告的意思大概是数据流占满了终端,我在使用fscanf()时是用默认的Inf,所以单片机传送数据给MATLAB时,即便是没有字符串了,MATLAB也会一直读取该行数据,直到数据装不下溢出了,停止读取。
因此,在数据串末位加换行,表示该行结束,即可结束读取。
在MATLAB使用fscanf()读取单片机串口数据时遇到警告,原因是数据流满导致读取延迟。通过在数据末尾添加换行符
,可以避免警告并实现几乎实时的串口传输。警告提示接收数组尺寸过大,使用Inf可能导致MATLAB不断尝试读取超出实际数据量的行。添加换行符告诉MATLAB数据行结束,从而优化读取效率。
2067

被折叠的 条评论
为什么被折叠?



