Matlab串口通信

Matlab串口通信

基本说明

  • 环境: Win10MatlabR2021a、串口助手
  • 一般说的串口都USART、如果没有硬件设备的话需要用到虚拟串口帮助测试
    在这里插入图片描述

serial用法

  • Matlab2019b 以前使用的是serial
  • 旧版函数也应该也可以使用回调函数 后面有时间再看
clc; clear; close all;
%% Matlab 串口通信测试
% 列出所有串口
seriallist
% 创建串口 默认波特率9600 
% s = serial('COM13')
s = serial('COM13','BaudRate',9600,'Terminator','CR/LF')
% 打开串口
fopen(s)
% 发送数据
fprintf(s,'Hello Serial');
% 等待对方输入数据
idn = fscanf(s);
% 关闭串口
fclose(s);
% 释放串口
delete(instrfindall)

serialport用法

  • Matlab2019b以后用的是 serialport
  • 函数用法和说明写在注释里详细说明请移步官方文档
clc; clear; close all;
%% Matlab 串口通信测试
% 列出所有串口设备
% ports = serialportlist('all')
% 仅列出可用串口
ports = serialportlist('available')
% 打开串口  其它默认 8数据位 无校验 1停止位 (8N1)  
s = serialport('COM13',9600)

% 设置终止符 CR回车(\r)   LF换行(\n)
configureTerminator(s,'CR/LF');

% 设置回调函数 及触发条件
configureCallback(s,'terminator',@readSerialData);
% 有50字节数据时触发回调
% configureCallback(device,"byte",50,@callbackFcn);
% 查看属性确认更改
% s.BytesAvailableFcnMode
% s.BytesAvailableFcnCount
% s.BytesAvailableFcn

% 将 ASCII 数据行写入串行端口
writeline(s,'Hello SerialPort')
% 以 uint8 格式写入值 [1,2,3,4,5]
% write(device,1:5,"uint8")

% data = readline(s);
% 以 uint8 格式读出数据
% read(device,5,"uint8")

% 暂停5s 向串口发送数据
pause(5)
% 关闭回调
configureCallback(s,'off');
% 验证关闭
% s.BytesAvailableFcnMode

% 释放串口 否则 重复打开设备会出错【设备被占用】
% s.delete;
clear s;

%% 回调函数
function readSerialData(src,evt)
    data = readline(src)
    src.UserData = data;
    % 对获取到的数据进行处理
end
  • 这里只是说明了基本用法 通信成功后 使用Matlab做实时的数据处理以及算法验证都是可行的
  • Matlab串口通信例子都比较简单复杂的实现都被封装好了 可以把更多的时间和精力放在数据处理和算法上

参考

串行和 USB 通信

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值