xthupan 发表于 2010-4-15 22:02:05

Matlab --- Invalide first data arguement

Matlab读取串口发过来的数据有时会出错,提示“Invalide first data arguement”。数据格式为“1234 5678 1233 4566”.

麻烦各位高手有懂的帮忙看下,谢谢。

以下为MATLAB源程序:

%波特率115200,其它参数默认。
clear;
clc;
i=100;      
s=serial('COM1' ,'baudrate',115200,'Inputbuffer',512);%定义S,设置波特率115200,输入缓存512
fopen(s);   %打开串口
while i
dat=fscanf(s,'%d',100);   %输入100个数到dat,不可太多,以免溢出
%w=fopen('temp.txt','a');%准备写数据到文件
%fprintf(w,'%f ',dat);   %输出数据到文件
%fclose(w);
i=i-1;
plot(dat, 'DisplayName', 'dat', 'YDataSource', 'dat'); figure(gcf)
end
fclose(s);               %关闭串口
%w=fopen('temp.txt','r');   %打开文件
%dat1=fscanf(w,'%f');       %将文件里所有数据都合成到dat1
%fclose(w);
%delete temp.txt;            %删除文件,防止影响下一次产生的数据
%plot(dat1, 'DisplayName', 'dat1', 'YDataSource', 'dat1'); figure(gcf)   %绘图

cursive 发表于 2010-4-15 22:18:45

楼上你用的什么版本的Matlab?

xthupan 发表于 2010-4-15 22:22:40

回复【1楼】cursive
-----------------------------------------------------------------------

Matlab 2008b
页: [1]
查看完整版本: Matlab --- Invalide first data arguement