Hallo, weiß einer von euch vielleicht wie man die Serielle Schnittstelle mit Matlab ausliest und die Daten direkt in eine Datei speichert? Ich bekomme Kommagetrennte Zahlen bzw. Daten von meinem AVR im Format: "long int, float, float, float, int, int, int, int, int, int,\r\n" soweit bin ich schon mal: s = serial('COM5','BAUD',115200); fopen(s) Vielleicht hat einer von euch schon mal sowas gemacht und was parat? Viele Grüße Tim
So vielleicht?
1 | portid=serial('/dev/ttyS0'); |
2 | set (portid,... |
3 | 'BauRate',115200,... |
4 | 'InputBuffersize',4000,... |
5 | 'Timeout',1); |
6 | fopen(portid); |
7 | fwrite(portid,'blablabla'); |
8 | [indata,count,msg]=fread(portid,4000,'uchar'); |
9 | |
10 | fclose(portid); |
11 | delete(portid); |
12 | clear portid; |
Die beste Lösung, hab ich mal für ein Projekt gemacht: if ~isempty(instrfind) fclose(instrfind) end ser=serial('COM24'); disp('Serialobjekt erzeugt'); set(ser,'BaudRate',115200); set(ser,'DataBits',8); set(ser,'Parity','none'); set(ser,'StopBits',1); set(ser,'ReadAsyncMode','continuous'); set(ser,'Terminator','CR/LF'); fopen(ser); disp('Serialobjekt geöffnet') filename = sprintf('Log%s.txt',datestr(now,30)); fileID = fopen(filename,'wt'); while (1) %dauerschleife fwrite(ser, ['14:14:14' char(13)]); disp(fgetl(ser)) fprintf(fileID,fgetl(ser)); fprintf(fileID,'\n'); end fclose(fileID); fclose(ser);
Habe mir diesn Programmcode als M-File gespeichert und erfolgreich ausgeführt. wie beende ich diesen Programmcode? Manchmal beendet sich die Ausführung alleine und manchmal schließe ich Matlab dazu, woraufhin sich der Rechner ab und an aufhängt. Warning: Unaspected Warning: The input puffer was filled before the Terminator was reached Wie kann ich diese Meldung wegkriegen? Vielen Dank
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.