MATLAB使用: 02 matlab进行串口通讯时经常报连接错误

使用matlab串口功能时,如果异常退出导致没有删除串口,下次连接时会报错,似乎被matlab自身所占用了。如果直接使用,会失败。

报错如下

错误使用 serial/fopen (line 72)
打开失败: Port: COM7 is not available. No ports are available.
Use INSTRFIND to determine if other instrument objects are connected to the requested device.

出错 RS485 (line 26)
    fopen(s);

这个问题很容易解决,只需要拔掉电脑上的USB端口,并且重启MATLAB即可。要注意,重启matlab时最好移除端口,因为我发现连接着端口会导致matlab重启时间过长或者直接重启是吧。

当然,重启多了就觉得很麻烦,所以写了如下程序,可以防止任何情况下的串口重连失败。多次测试效果很好。不会再报错了。我用的端口时COM7.

% 尝试打开串口
try                    %尝试打开一次串口,打开成功则删除串口
    s = serial('COM7');
    fopen(s);
    disp('串口可用');
    fclose(s);
    delete(s);
catch                %尝试失败,则访问所有串口,并且删除所有占用的串口
    coms = instrfindall;
    stopasync(coms);
    fclose(coms);
    delete(coms);
    disp('串口已被占用');
end
    if exist('s','var')==1
        delete(s);
    end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值