matlab功能强大,串口操作异常简单,其详细参看下面两个连接吧
matlab之串口通信 转自http://blog.sina.com.cn/s/blog_6163bdeb0102e8qc.html
下面做了个matlab控制串口的尝试,下面是几个函数接口
% 打开串口
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
28163141
在matlab命令框中如下输入命令打开串口com2
scom = OpenSerial(‘com2’, @ReadFcn_Com2);
com2成功打开。
向com2写
WriteSerial(scom, ‘Hello!’);
串口调试助手收到信息
28035719
用串口调试助手回复matlab,点上图中的手动发送(发送的信息已英文句号.结束),matlab中收到信息
Hello, Matlab.关闭串口
CloseSerial(scom)
matlab操作串口是不是很简单!# 欢迎使用Markdown编辑器写博客