matlab - 尝试从 Matlab 中的 COM 端口读取数据时出现“没有可用端口”错误

标签 matlab serial-port

我正在尝试从笔记本电脑的串行端口读取数据。数据通过 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/

相关文章:

大多数语言的行和列索引约定

matlab中无法返回零值

matlab - 在 matlab 中创建簇

c++ - Qt打开串口

c# - 串行监视器、DataReceived 处理程序误解 C#、WPF

java - java 中是否有 lsqcurvefit 等效项?

svn - 具有多个开发人员的 Matlab Simulink 版本控制

c# - 在 .NET 中使用 RS422 传输数据

javascript - 如何使用javascript在客户端通过串口进行通信?

php - 如何使用PHP写入串口?缓冲有问题