MATLAB如何采集MSP430的数据?我们小组要做一个使用光电传感器测量火车...
发布网友
发布时间:2024-01-14 21:44
我来回答
共2个回答
热心网友
时间:2024-11-30 14:43
首先MSP430发送数据,这个“串行通讯”就可以解决。你的部分的话就是把matlab作为串口接收端,这个比较简单,就是用matlab实现跟串口助手一样的功能。首先,确定使用matlab中自带的工具箱Test&Measurement Tool。调用路径为Start---toolboxes---Instrument control---tmtool。选择Serial中的COM1,然后在configure中设置波特率、数据位、奇偶校验位、停止位。在选定完毕后,点击connect,即可进行发送和接收。比如我的发送和接收都是ASCII码,在communicate中选择ASCII码,在Data format中选择c%。在发送了一个命令之后,就可以在Session log中找到具体的m文件,对m文件进行一定的改动之后,以后就可以直接在m文件中发送。
如果还是不清楚的话,我把我这个m文件写在下面:
obj1 = instrfind('Type', 'serial', 'Port', 'COM1', 'Tag', '');
if isempty(obj1)
obj1 = serial('COM1');//使用com1
else
fclose(obj1);//关闭com1
obj1=obj1(1)
end
fopen(obj1);//打开com1
data7= query(obj1, '7', '%c');//发送命令7,获取遥测信号
datanum=str2num(data7);//把string型转换成number
i=datanum(1:32); //采集了32个点
fclose(obj1);
% Disconnect from instrument object, obj1.
fclose(obj1);
% Communicating with instrument object, obj1.
data7 = query(obj1, '7', '%c');
% Clean up all objects.
delete(obj1);
Amax=max(i)
Amin=min(i)
Arms=(Amax-Amin)/(2*sqrt(2))
X=fft(i); //FFT分析
stem(50.*(0:length(X)-1),abs(X));
axis([0 50*13 min(abs(X)) max(abs(X))])
热心网友
时间:2024-11-30 14:46
采集设备支持C++就可以用。