首先我发送数据 Arduino的 </跨度> 来自Matlab,然后 Arduino的 </跨度> 继续处理这些数据,并向Matlab发送一条消息“Ready”,向他发送一个新消息。但这种定期沟通非常缓慢。
这是我的Matlab = strcat(num2str(tabx(i)),‘,’,num2str(taby(i)),‘,’,num2str(pression_ref));
%发送fprintf中(arduino_serial,此处a_string);%来自 Arduino的 </跨度> while(strcmp(‘Ready’,fscanf(arduino_serial,‘%f’))== 0)结束fclose鈥
根据您的解释,我认为您的代码不合适。我已经理解Matlab等待来自arduino的'ready',然后它可以立即发送新消息。因此,您不必每次都关闭序列并重新打开它;这部分增加了至少1s的延迟!
你必须在你的for循环之外放置开始和结束序列。
为了可靠性,您应该增加 sleep(1) 至 sleep(2) 。
sleep(1)
sleep(2)
此外,在打开它之前,arduino串行缓冲区中可能有垃圾;如果你遇到这个,那么你可以从arduino串口读取以清空缓冲区(就在sleep(2)指令之后)。