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



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

警告:读取失败:在到达终结者之前发生超时。 "串行"无法读取任何数据。有关可能原因的详细信息,请参阅串行读取警告。 南

我的矩阵实验室代码如下

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;

当找到第一个终止符时,fscanf将返回。这通常是回车 (CR(。由于您使用的是Serial.print(bme.readTemperature());因此Arduino永远不会发送CR。试试Serial.println(bme.readTemperature());

最新更新