Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将温度数据从Arduino发送到Matlab时出错_Matlab_Arduino_Serial Port - Fatal编程技术网

将温度数据从Arduino发送到Matlab时出错

将温度数据从Arduino发送到Matlab时出错,matlab,arduino,serial-port,Matlab,Arduino,Serial Port,我正在尝试使用串行通信将温度传感器数据从arduino发送到matlab。温度数据显示在Arduino串行监视器上,但我无法在Matlab中获取数据。出现以下错误。我已经尝试了各种可能的方法来获取数据,在fscanf之前暂停(3),但仍然不起作用 警告:读取失败:在到达终止符之前发生超时。 “串行”无法读取任何数据。有关可能原因的更多信息,请参阅串行读取警告。 楠 我的matlab代码如下 if ~isempty(instrfind) fclose(instrfind); del

我正在尝试使用串行通信将温度传感器数据从arduino发送到matlab。温度数据显示在Arduino串行监视器上,但我无法在Matlab中获取数据。出现以下错误。我已经尝试了各种可能的方法来获取数据,在fscanf之前暂停(3),但仍然不起作用

警告:读取失败:在到达终止符之前发生超时。 “串行”无法读取任何数据。有关可能原因的更多信息,请参阅串行读取警告。 楠

我的matlab代码如下

if ~isempty(instrfind)
    fclose(instrfind);
    delete (instrfind);
end

waitTime = 10;

s = serial('COM4','BAUD',9600);

waitTime = duration(0,waitTime,0);
t = datetime('now') - startTime;

while t < waitTime
    fopen(s);
    pause(3);
    idn = fscanf(s);
    fclose(s);

    serialData = str2double(idn);
    corrData = serialData;
    disp(corrData);
end


clear a;
clear s;
if~isempty(instrfind)
fclose(instrfind);
删除(instrfind);
结束
等待时间=10;
s=串行('COM4','BAUD',9600);
waitTime=持续时间(0,waitTime,0);
t=日期时间(“现在”)-开始时间;
而t当找到第一个终止符时,fscanf将返回。这通常是回车(CR)。因为您使用的是
Serial.print(bme.readTemperature())Arduino从未发送过CR。尝试
Serial.println(bme.readTemperature())

在循环中打开和关闭可能是错误的。通常,您打开连接并保持打开状态,直到所有内容都被读取。arduino正在发送什么样的数据?文本数据?我不确定arduino发送的是什么样的数据,因为我是arduino的绝对初学者,但我正在将温度传感器数据发送到matlab。数据是使用Serial.print(bme.readTemperature())在arduino中显示的;。你好谢谢你的回复。它显示错误信息,但温度ie 26.32度的数据从未发送到Matlab。相反,它显示了NaN。没有发送值的原因可能是什么?我已经通过将fopen和fclose放在while循环之外解决了这个问题。它显示的是值,但对于前几个值,它显示的是NaN。