我正在尝试从笔记本电脑的串行端口读取数据。数据通过 COM13 来自 MSP430。
当我尝试通过 MATLAB 访问数据时,它显示 -
???在 72 处使用 ==>serial.fopen 时出错 端口:COM13 不可用。没有可用的端口。 使用 INSTRFIND 确定是否有其他仪器对象连接到请求的设备。
==> 接口(interface)图中的错误位于 3 fopen(s)
我使用的代码是这样的-
s = serial('COM13'); %assigns the object s to serial port
set(s, 'InputBufferSize', 128); %number of bytes in inout buffer
set(s, 'FlowControl', 'none');
set(s, 'BaudRate', 9600);
set(s, 'Parity', 'none');
set(s, 'DataBits', 8);
set(s, 'StopBit', 1);
set(s, 'Timeout',100);
%clc;
disp(get(s,'Name'));
prop(1)=(get(s,'BaudRate'));
prop(2)=(get(s,'DataBits'));
prop(3)=(get(s, 'StopBit'));
prop(4)=(get(s, 'InputBufferSize'));
disp([num2str(prop)]);
fopen(s); %opens the serial port
data = fscanf(s);
fclose(s); %close the serial port
最佳答案
通常正如 matlab 和评论者所指出的那样,instrfind 会查找使用串行端口的对象。关闭所有这些(不需要的)连接的根本方法是:
fclose(instrfindall);
delete(instrfindall);
这将关闭所有连接并删除对象。输入 instrfind
之后会显示 []
。如果这不起作用,请尝试重新连接设备或重新启动计算机,然后重试。我能想到的最后一件事是使用终端/命令行(我在 UNIX 上)并谷歌如何找出哪个进程使用哪个 COM 端口。然后终止该进程并重试。
不用说,您需要关闭使用该 COM 端口的所有其他程序。请确保这一点(很容易忘记)。
关于matlab - 尝试从 Matlab 中的 COM 端口读取数据时出现“没有可用端口”错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21363693/