MATLAB如何采集MSP430的数据?我们小组要做一个使用光电传感器测量火车速...

问题描述:

MATLAB如何采集MSP430的数据?我们小组要做一个使用光电传感器测量火车速...
MATLAB如何采集MSP430的数据?我们小组要做一个使用光电传感器测量火车速度的项目,用MSP430来计算时间,我的部分是将单片机得到的数据转换到PC界面实现显示.目前思路是使用MATLAB处理,但具体流程不知怎么编排,望高手指导一二.
我有同学用过C++编程实现,不知道是否使用他的方法更好
1个回答 分类:综合 2014-10-27

问题解答:

我来补答
首先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))])
 
 
展开全文阅读
剩余:2000