更新
经评论提醒,R2019已有现成APIhttps://ww2.mathworks.cn/help/matlab/ref/serialportlist.html
背景故事
要在MATLAB的App里面动态识别有什么串口, 放在下拉菜单里让用户选择.
实现串口扫描
这是网上找的代码:
放在同一目录内, 创建一个.m文件:IdentifySerialComs.m
.
function devices = IdentifySerialComs()
devices = [];
Skey = 'HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM';
[~, list] = dos(['REG QUERY ' Skey]);
if ischar(list) && strcmp('ERROR',list(1:5)) %% strcmp 两个字符串相同返回1
disp('Error: EnumSerialComs - No SERIALCOMM registry entry')
return;
end
list = strread(list,'%s','delimiter',' '); %#ok<FPARK> requires strread()
coms = 0;
for i = 1:numel(list) %%numel 返回元素个数
if strcmp(list{i}(1:3),'COM')
if ~iscell(coms)
coms = list(i);
else
coms{end+1} = list{i}; %#ok<AGROW> Loop size is always small
end
end
end
out =