Matlab---串口操作---数据采集篇

原创 2014年11月17日 11:48:45

matlab功能强大,串口操作也很简单,相信看过以下两个实验你就能掌握咯!开始吧!

实验1:

从电脑COM2口读取数据,并将数据保存在TXT文件中,方便数据分析,下面是M脚本:

%名 称:Matlab串口-Lab1
%描 述:串口读,并写入txt文件中
s=serial('com2');
s.BytesAvailableFcnMode='byte';  % 串口设置
s.InputBufferSize=4096;
s.OutputBufferSize=1024;
s.BytesAvailableFcnCount=100;
s.ReadAsyncMode='continuous';
s.Terminator='CR';
fopen(s);                  %打开串口
out=fread(s,10,'uint8');   %一次读出10个字符  
fprintf('%3c',out);        %一个字符占三位输出,%c字符,%d整型

fid=fopen('serial_data.txt','w+'); % 'a+'读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之
fprintf(fid,'%3c',out);            % 写入文件中        
fclose(fid);

fclose(s);
delete(s);
实验2:

同样的功能,用函数写更规范,代码如下:

% 打开串口
function scom = OpenSerial(sname, HReadFcn)
scom = serial(sname);
scom.BytesAvailableFcnMode = 'terminator';
scom.Terminator = '.';
scom.BytesAvailableFcn = HReadFcn;
try
fopen(scom);
catch err
fprintf('%s打开失败。\n', sname);
end
fprintf('%s成功打开。\n', sname);
end
% 写串口
function WriteSerial(scom, str)
fprintf(scom, str ,'async'); % 异步方式
end
% 读串口回调函数
function ReadFcn_Com2(obj, ~)
n = get(obj, 'BytesAvailable');
if n
a = fread(obj, n, 'uchar');
c = char(a');
fprintf('%s\n', c);
end
end
% 关闭串口
function CloseSerial(scom)
try
fclose(scom);
catch err
fprintf('%s关闭失败。', scom.Name);
return
end
delete(scom);
end

仿真如下,使用虚拟串口连接串口2和3,打开串口调试助手,以默认方式打开com3


在matlab命令框中如下输入命令打开串口com2

>> scom =OpenSerial('com2', @ReadFcn_Com2);

com2成功打开。

    向com2写

>>WriteSerial(scom, 'Hello!');

串口调试助手收到信息


用串口调试助手回复matlab,点上图中的手动发送(发送的信息已英文句号.结束),matlab中收到信息

Hello, Matlab.

>> 

    关闭串口

>> CloseSerial(scom)

部分参考:http://blog.sina.com.cn/s/blog_6163bdeb0102e8qc.html

通过这两个实验,你学会使用了吗?呵呵...

MATLAB 串口通信的实现。。

硬件上: 单片机通过串口发送数据,,  通过 USB转串口模块,  把数据发给电脑。。 在MATLAB上,对串口进行读取: delete(instrfindall) 这一句是删除所...

Matlab与单片机的串口通信-matlab…

Matlab提供了对串口进行打开、 关闭、 以及串口参数设置等操作的一系列函数。利用这些函数可以选择串口号、 设置串口通信参数( 波特率、 数据位、 停止位、 校验位等)、进行中断控制、流控制。从建立...
  • c_ycy
  • c_ycy
  • 2016年12月26日 09:57
  • 5783

MATLAB串口通信

Matlab并不具备直接访问硬件的能力,但是支持面向对象技术,通过调用Instrument Control Toolbox中的serial类函数来创建串口对象,对串口对象操作就是对串口操作,使用起非常...

Matlab接收串口数据

Matlab接收串口助手发送的txt文档数据,保存为以当前时间命名的txt文档。 调试过程中主要遇到几个问题, 1.保存为txt的文件名如何自动创建 最终选择了获取系统当前时间格式为xxxx-x...

matlab读取串口数据并显示曲线

matlab程序读取单片机通过串口传来的IMU角度数据,并用曲线显示出来。 上传的值为float型,每个数据后有回车符。范围90~-90   主文件 serial_test2.m %% clc...
  • qwertyuj
  • qwertyuj
  • 2013年09月27日 18:50
  • 27496

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

matlab之串口数据采集绘图

实现数据显示绘图功能,使用M脚本文件和M函数文件。 第一个文件连接串口和打开串口,设置了串口的一些参数和触发事件。连接串口COM3。 第二个文件是回调函数,相当于其他语言中例如C语言的中断函数 ...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Matlab接收串口数据

Matlab接收串口助手发送的txt文档数据,保存为以当前时间命名的txt文档。 调试过程中主要遇到几个问题, 1.保存为txt的文件名如何自动创建    最终选择了获取系统当前时间...

MATLAB GUI设计之读取串口数据并计算绘图

在操作某些模块的时候,模块会返回数据到串口,我们通过读取串口的数据,分析模块的运行情况是比较常见的方法。而matlab也有读取串口数据的能力,并加上其强大的绘图能力,可以让数据更为直观的可视化,便于用...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Matlab---串口操作---数据采集篇
举报原因:
原因补充:

(最多只允许输入30个字)