matlab学习笔记2:搭建简易的串口,并将数据保存至csv

1搭建简易串口

使用matlab搭建串口需要注意以下几个注意事项:
1.进行串口初始化之前先删除所有串口设备,这可以有效防止由于串口被占用造成的串口初始化失败。
2.初始化串口需要配置串口号,波特率,触发方式以及回调函数入口。
3.每次中断成功之后都会跳转至回调函数,在回调函数中使用主函数的变量,必须在回调函数的()内部声明,或者使用全局变量。基本声明形式为:

function Callback(obj,~)%obj为串口的形参

2写入文件到csv

这一步在回调函数里面实现,即每次进入回调函数,便以追加的形式往文件里填入数据。这一步有以下几个注意事项:
1.写入文件,这里需要配置文件的读写限制。

filename2 = 'E:\4.csv';%打开文件
fid2 = fopen(filename2, 'a+');%以追加的方式写入数据

2.读取串口数据并写入文件,重点在于fscanf和fprintf的使用。

out=fscanf(obj,"%d,%d,%d",[1,3])%把数据存入1行3列的矩阵
fprintf(fid2,'%d,%d,%d\n',out(1,1),out(1,2),out(1,3));%写入文件

3.通过静态变量配置读取数据的次数,由于在程序结束静态变量内存不释放,只有关闭matlab,静态变量的内存才被清除。

persistent x; %静态变量
if isempty(x)
x=0;
end
clear x;%清除静态变量

4.关闭文件和串口。

fclose(fid2);
fclose(obj);

3完整程序

function serial_matlab()
delete(instrfindall);%删除所有串口设备
s=serial('com5');
set(s,'BaudRate',115200);
set(s,'BytesAvailableFcnMode','Terminator');%设置中断触发方式,当读取到一个特殊字节时中断
set(s,'Terminator','CR/LF');%换行
s.BytesAvailableFcn=@Callback;
fopen(s);
end 

function Callback(obj,~)
persistent x; %静态变量
if isempty(x)
x=0;
end

filename2 = 'E:\4.csv';%打开文件
fid2 = fopen(filename2, 'a+');%以追加的方式写入数据

out=fscanf(obj,"%d,%d,%d",[1,3])%把数据存入1行3列的矩阵
fprintf(fid2,'%d,%d,%d\n',out(1,1),out(1,2),out(1,3));%写入文件

x=x+1
if (x==10)
    clear x;%清除静态变量
    fclose(fid2);
    fclose(obj);
end
end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

生活在别处u

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值