本文主要针对视频毕设如此简单之上位机篇,提供了一种matlab端用于获取串口端口的接口函数。大家在使用的时候直接调用函数即可,将代码段复制到Matlab.m文件中,命名.m文件为get_com_ports.m即可直接调用,调用方式为[COMS port] = get_com_ports(),其中COMS 为设备名称,port为端口号。
function [COMS port] = get_com_ports()%获取串口号函数
command = 'wmic path win32_pnpentity get caption /format:list | find "COM"';
[status, cmdout] = system (command);
cmdout = strread(cmdout,'%s','delimiter','='); %按分隔符拆分字符串数组
if numel(cmdout)>0
    j=1;
    for i = 1:numel(cmdout)  %numel 返回元素个数
        if strcmp(cmdout{i}(1:7),'Caption')
            COMS{j} = cmdout{i+1};
            j=j+1;
        end
    end
    COMS_split=cell2mat(COMS);
    COMS_split=split(COMS_split,'(');%通过左括号将字符串分割
    j=1;
    for i = 1:numel(COMS_split)  %numel 返回元素个数
        if strcmp(COMS_split{i}(1:3),'COM')
            port_temp{j} = COMS_split{i};
            j=j+1;
        end
    end
    port_temp=split(port_temp,')');%通过右括号将字符串分割
    j=1;
    for i = 1:(numel(port_temp)-1)  %numel 返回元素个数
        if strcmp(port_temp{i}(1:3),'COM')
            port{j} = port_temp{i};
            j=j+1;
        end
    end
elseif numel(cmdout)==0
    COMS="没有搜索到串口";
    port="null";
    errordlg('没有搜索到任何可用端口');
end
end