概述
Matlab串口通信
文章目录
- Matlab串口通信
- 基本说明
- serial用法
- serialport用法
- 参考
基本说明
- 环境:
Win10
、MatlabR2021a
、串口助手 - 一般说的串口都
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串口通信所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复