Verfasst am: 15.04.2008, 09:02
Titel: Daten über RS232 empfangen
HAllo.
Ich möchte genre in Matlab über eines serielle (RS232) Schnittstelle Dtaen empfangen. Eigentlich sollen nur 2 BYte empfangen werden, die ich später in Matlab weiter verwenden möchte, d.h. ich muss diese dann irgendwo abspeichern, so dass ich sie wieder auslesen kann. Diese Daten sind nur Zustände einer Variablen die für ein Unterprogramm benötigewerden.
Ich weiß, dass hier im Forum scho einiges über RS232 steht, aber ich weiß nicht genau, was ich aus den Codes wirklich brauche.
Ich muss ja nur zwei bytes empfangen, die in einer Variable abspeichern, um sie darauf wieder auslesen zu können.
Bei allem Respekt! Aber wenn Dir Deine Zeit so wichtig ist, dass Du weder die Suche-Option benutzst, noch in die Dokumentation nachschauen möchtest, dann darfst Du auch nicht erwarten, das jemand das für Dich tut.
Was heißt hier"ich suche nciht selber nach info und lass es andere für mich machen". Was meinst du was ich die letzte Tage gemacht habe???!!! Natürlcih hab ich versucht was heraus zu bekommen. Hab ich im Grunde auch. Aber die Info Flut ist irgendwie zu krass. Ich habe eben mal meinen Code getestet, und empfange auch was. Allerdings immer in einer anderen Reihenfolge. Wie kann ich dass denn genau bestimmen, welches byte wohin gespeichert werden soll. ICh schicke ganz simpel über ein Board meinen NAmen (8 Buchstaben = 8Byte) über die schnittstelle. Im OUT-Array werde diese auch eingelsen, aber eben immer in einer anderen Reihenfolge.
Wie kann ich diese denn Festlegen????
ser_connect = serial('COM1','Baudrate', 9600,'Parity', 'none','Databits', 8, 'StopBits', 1);
ser_connect.Flowcontrol = 'hardware' %handshaking aktiviert
ser_connect.ReadAsyncMode = 'manual' %asynchrone Datenübermittlung
ser_connect.BytesAvailableFcnCount = 8; %
ser_connect.BytesAvailableFcnMode = 'byte'; %Es wird eine BytesAvailableFcnMode erzeugt, wenn bestimmte Anzahl an bytes
%verfügbar sind get(ser_connect) ; %der Port wird automatisch konfiguriert
fopen(ser_connect); %verbindet den seriellen Port mit dem Device
out = fread(ser_connect,8);
fclose(ser_connect);
delete(ser_connect);
clear ser_connect;
Naja, eben nciht ganz. Mir ist aufgefallen, das manchmal , wenn ich Mtalab einige Male hintereinander mit "Run" durchlaufen lasse, erwischt er ab und zu einen Wert, den ich eigentlich gar nicht schicke. Da enstehen dann aufeinaml werte wie 248, 255 usw.
Woran kann das denn liegen???
Und wie bekomme ich dieses durcheinander von Daten empfangen wieder in die richtige Linie. ?
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.