我是靠谱客的博主 糟糕砖头,最近开发中收集的这篇文章主要介绍Matlab串口通信Matlab串口通信,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Matlab串口通信

文章目录

  • Matlab串口通信
    • 基本说明
    • serial用法
    • serialport用法
    • 参考

基本说明

  • 环境: 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 通信

最后

以上就是糟糕砖头为你收集整理的Matlab串口通信Matlab串口通信的全部内容,希望文章能够帮你解决Matlab串口通信Matlab串口通信所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(78)

评论列表共有 0 条评论

立即
投稿
返回
顶部