|
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) %绘图 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|