matlab串口的fread,matlab串口操作

matlab功能强大,串口操作异常简单,其详细参看下面两个连接吧

下面做了个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

a4c26d1e5885305701be709a3d33442f.png

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

>> scom = OpenSerial('com2',

@ReadFcn_Com2);

com2成功打开。

向com2写

>> WriteSerial(scom,

'Hello!');

串口调试助手收到信息

a4c26d1e5885305701be709a3d33442f.png

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

Hello, Matlab.

>>

关闭串口

>> CloseSerial(scom)

matlab操作串口是不是很简单!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值