Hallo,
Ich versuche mit folgendem Code von der seriellen Schnittstelle Daten zu empfangen. Das klappt auch, aber nicht so wie gewünscht und nicht lange genug...
Ich bekomme alle 2s ein Paket aus 1000 Zeilen die mit CR abgeschlossen sind über COM1.
Das soll zunächst mal in ein Array zur Weiterverarbeitung abgelegt werden.
Code:
function s = serial_com () line =1 iflength(instrfind) > 0 fclose(instrfind);
end
s = serial('COM1','BaudRate', 115200,'Parity', 'none','DataBits', 8,'InputBufferSize', 1024,'OutputBufferSize', 1024,'Timeout', 2);
s.Terminator = 'CR';
s.BytesAvailableFcnMode = 'terminator';
disp('COM-Port opened successfully');
while(s.BytesAvailable)
receive = fscanf(s);
ergebnis{line,1}=receive;
line=line+1;
end
Du bekommst mindestens 1000 Zeilen (=1000 mal LF) plus einmal CR. Das sind schon 1001 Zeichen. Dein Inputbuffer ist aber nur 1024 byte groß. Da müssen deine Zeilen schon sehr sporadisch mit Daten befüllt sein, damit das reicht...
Der__steffen
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 09.06.2010, 16:32
Titel:
Um genau zu sein sind es sogar 1000 mal CR sowie LF
Ich werde mal einen größeren Inputbuffer ausprobieren
Du beendest eine Zeile mit CR LF und benutzt CR als terminator-Zeichen für den Empfang in Matlab. Wenn nicht irgendwas falsch läuft, sollte matlab Dir dann eigentlich jede Zeile einzeln an den Kopf werfen.
Grundsätzlich ist es auch meistens sinnvoll mit einer Callback-Funktion zu arbeiten, die automatisch aufgerufen wird, sobald bytes verfügbar sind. Kann man IIRC direkt aus der Dokumentation rauskopieren...
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.