Matlab通过简单的脚本程序读写串口

实验目的

关于Matlab的串口通信GUI的教程很多,但我就想直接用简单的脚本实现串口通信,得到数据,先随便记录一下吧。

实验环境

sscom5.13.1
Matlab2022a

确认串口正常

确定可以通过简单的串口程序实现通信
【需要确定单片机等串口通信的参数】
1、所要通信的端口号(本实验电脑只使用了一个端口)
请添加图片描述2、设置的波特率、数据位、停止位、校验位
在这里插入图片描述
在这里插入图片描述
3、打开串口,发送数据AT\r\n(\r\n代表回车换行,因为单片机已经设置好的终止符)
结果如下:能正常收到回传的信息
注意:验证完串口能正常使用后记得关闭串口,因为不能同时打开同一个串口。

请添阿斯顿描述

Matlab代码与解析

找到当前可用的端口号

Item=char(serialportlist("all"))     %找到当前可用的串口Item

配置端口信息
Baud=double(115200);   %设置的波特率
DataB=double(8);  %数据位
StopB=double(1);     %停止位
ParityB=char("none");     %校验位
SerialObject=serialport(Item,Baud,"DataBits",DataB,"StopBits",StopB, "Parity",ParityB);  %串口配置
设置终止符CR/LF

此处设置了回车换行作为终止符,如果不想设置也行,每一次发送数据的时候就需要加上\r\n

configureTerminator(SerialObject,"CR/LF");  %设置终止符CR/LF
回调函数

第二个参数可以为
“terminator” :将回调设置为当终止符可供读取时触发。
“byte,count”:每当有新的 count 个字节可供读取时触发。
“off”:关闭回调。

configureCallback(SerialObject,"terminator",@readSerialData)
%% 回调函数
%  function readSerialData(SerialObject,evt)
%     ddate=readline( SerialObject)
%     SerialObject.UserData =ddate; 
%  end
往串口写数据
writeline(SerialObject,"AT+interval=5"); 
writeline(SerialObject,"AT+switchdis="+open); 
全部代码
串口通信
clc
clear  %清除数据和关闭串口
aaa=0;
bbb=0;
gggg=0;
Item=char(serialportlist("all"))     %找到当前可用的串口Item,只使用一个串口
Baud=double(115200);                 %设置的波特率
DataB=double(8);                     %数据位
StopB=double(1);                     %停止位
ParityB=char("none");                %校验位
SerialObject=serialport(Item,Baud,"DataBits",DataB,"StopBits",StopB, "Parity",ParityB);  %串口配置
configureTerminator(SerialObject,"CR/LF");  %设置终止符CR/LF
%configureCallback(SerialObject,"terminator",@readSerialData)
writeline(SerialObject,"AT"); %实际上发送了AT和终止符(上文有说明)

%% 回调函数
 function readSerialData(SerialObject,evt)
    ddate=readline(SerialObject)
    SerialObject.UserData =ddate; 
 end

总结

主要相关内容就这些,然后在此基础上再去一步步添加自己想要的功能。注意几个事项:
1、同一个端口不能被打开两次,想打开的时候得把已经打开的串口关闭;
2、设置正确的终止符在发送的时候就不用再手动添加终止符;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值