Problema abrir puerto COM
Publicado por bidi (9 intervenciones) el 23/05/2017 12:05:46
Buenos días, estoy intentando leer y enviar datos desde un Arduino mediante bluetooth a Matlab 2017a. Para las primeras pruebas he usado Putty y me ha funcionado sin ningún problema el leer en el puerto COM, pero al llegar a Matlab, aun no he conseguido abrir que abra el puerto y poder trabajar con ello, siempre me da el siguiente error:
El puerto que trato de abrir es el correcto, dado que lo compruebo con el administrador de dispositivos y con el Putty previamente, ademas también uso la utilidad de Test &Measurament Tool de Matlab para asegurarme de que no haya ninguna conexión previa hecha por esté hacia el puerto serial, ni que quede ningún resto de conexiones previas. He probado a ejecutarlo en modo administrador, deshabilitar el antivirus y no consigo que funcione.
Eso si, una vez ejecutado mi código de matlab, no me deja volver a conectarme mediante Putty porque dice que el puerto esta ocupado.
Os dejo el código por si veis que este haciendo algo mal
Saludos.
1
2
3
4
5
6
7
8
Error using serial/fopen (line 72)
Open failed: Port: COM5 is not available. Available ports:
COM3, COM11, COM22.
Use INSTRFIND to determine if other instrument objects are
connected to the requested device.
Error in PruebaMatARd_TXRX_DUE (line 19)
fopen(puerto_serial);
El puerto que trato de abrir es el correcto, dado que lo compruebo con el administrador de dispositivos y con el Putty previamente, ademas también uso la utilidad de Test &Measurament Tool de Matlab para asegurarme de que no haya ninguna conexión previa hecha por esté hacia el puerto serial, ni que quede ningún resto de conexiones previas. He probado a ejecutarlo en modo administrador, deshabilitar el antivirus y no consigo que funcione.
Eso si, una vez ejecutado mi código de matlab, no me deja volver a conectarme mediante Putty porque dice que el puerto esta ocupado.
Os dejo el código por si veis que este haciendo algo mal
Saludos.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
%% Codigo de prueba para lectura %%
close all;clear all; clc;
% Inicializo el puerto serial que usare
delete( instrfind({'PORT'},{'COM5'} ));
puerto_serial = serial('COM5');
puerto_serial.BaudRate = 38400;
puerto_serial.DataBits = 8;
puerto_serial.StopBits = 1;
puerto_serial.Terminator = 'CR/LF';
puerto_serial.Parity = 'none';
%puerto_serial.FlowControl =
warning('off','MATLAB:serial:fscanf:unsuccessfulRead');
disp('Abriendo puerto serial');
% Abro el puerto serial
fopen(puerto_serial);
disp('puerto serial abierto');
pause(5);
cont = 1;
y = zeros(4,1);
% Leo datos
disp('Leo datos');
while cont < 20
valor = fscanf(puerto_serial,'%d/n',1)';
disp(valor);
y(cont) = valor;
cont=cont+1;
end
% Cierro el puerto serial y borro la conexion
fclose(puerto_serial);
delete(puerto_serial);
Valora esta pregunta
0