Softwareentwicklung
›
Thread
Matlab: COM-Port nicht gefunden nach Neuinstallation
Hallo liebes Forum,
leider musste ich mein Hauptarbeitsrechner neu aufsetzten. Mach
Installation von Matlab, wollte ich meine entwickelte Hardware per FTDI
und USART wieder zugreifen. Das Problem, es funktioniert nicht mehr.
Wähle ich den COM-Port aus erscheint folgende Fehlermeldung:
1 Index exceeds matrix dimensions.
2
3 Error in main_ui>connect_btn_Callback (line 160)
4 handles.serialPort = initSerialPort(hObject, eventdata, handles, handles.com_port{12});
5
6 Error in gui_mainfcn (line 96)
7 feval(varargin{:});
8
9 Error in main_ui (line 39)
10 gui_mainfcn(gui_State, varargin{:});
11
12 Error in @(hObject,eventdata)main_ui('connect_btn_Callback',hObject,eventdata,guidata(hObject))
13
14
15 Error while evaluating uicontrol Callback
Vor der Neuinstallation hat alles wunderbar funktioniert. Anbei mein
Code:
In der main.m:
1 gui_Singleton = 1;
2 gui_State = struct('gui_Name', mfilename, ...
3 'gui_Singleton', gui_Singleton, ...
4 'gui_OpeningFcn', @main_ui_OpeningFcn, ...
5 'gui_OutputFcn', @main_ui_OutputFcn, ...
6 'gui_LayoutFcn', [] , ...
7 'gui_Callback', []);
8 if nargin && ischar(varargin{1})
9 gui_State.gui_Callback = str2func(varargin{1});
10 end
11
12 if nargout
13 [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
14 else
15 gui_mainfcn(gui_State, varargin{:});
16 end
Im Modul initSerialPort.m
1 function serialPort = initSerialPort(hObject, eventdata, handles, portName)
2
3 serialPort = serial(portName);
4
5 % Set the baud rate
6 str = get(handles.baud_rate_pop, 'String');
7 ind = get(handles.baud_rate_pop, 'Value');
8 serialPort.BaudRate = str2num(str{ind}(1:end-4)); %4%
9 %serialPort.Terminator = 'CR/LF';
10 str = get(handles.buffer_size_pop, 'String');
11 ind = get(handles.buffer_size_pop, 'Value');
12 serialPort.InputBufferSize = str2num(str{ind}(1:3))*str2num(str{ind}(5));
13
14 % Add a callback function to be executed whenever 1 byte is available
15 % to be read from the port's buffer.
16 serialPort.BytesAvailableFcn = {@readPort, hObject, eventdata, handles};
17 serialPort.BytesAvailableFcnMode = 'byte';
18 serialPort.BytesAvailableFcnCount = serialPort.InputBufferSize;
19 end
An meinem Laptop kommt die gleiche Fehlermeldung. Der aktuelle
FTDI-Treiber ist installiert.
Danke im Voraus und Gruß
Daniel
Daniel V. schrieb:
> Index exceeds matrix dimensions.
Der Fehler sagt ja alles, oder? Du greifst wo auf ein Element zu, das
nicht existiert.
Was gibt
aus? Sollte ja COM1 bis COM** sein...
Was passiert, wenn du den Port (nur zum Testen) fix programmierst?
Nach dem "neu aufsetzen" werden die Portnamen gerne neu nummeriert...
Das ist richtig, funktioniert nur auch nicht wenn ich COM3 vergebe.
1 Error in main_ui>connect_btn_Callback (line 160)
2 handles.serialPort = initSerialPort(hObject, eventdata, handles, handles.com_port{3});
EDIT:
Wer lesen kann ist klar im Vorteil!!!
Hier ist der Fehler zu finden:
1 com_port_ind = get(handles.com_port_pop, 'Value');
2
3 % Diese Zeile war auskommentiert:
4 handles.serialPort = initSerialPort(hObject, eventdata, handles, handles.com_port{com_port_ind});
5
6 %% Hier war eine fester COM-Port zugewiesen, warum auch immer....
7 %handles.serialPort = initSerialPort(hObject, eventdata, handles, handles.com_port{12});
8
9 set(handles.connect_btn, 'Enable', 'off');
10 set(handles.disconnect_btn, 'Enable', 'on');
11 % Open the serial port for reading and writing.
12 fopen(handles.serialPort);
↑ Nach oben
← Zurück zu Softwareentwicklung
Antwort schreiben
Eine eigene Frage?
Dieser Thread ist über 9 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.
Neuen Thread starten
Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.