Serielle Schnittstelle (COM) mit MATLAB aufzeichnen/auslesen

Gast #2578611
Lesenswert?
• ▲
▼
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
Gast #2578631
Lesenswert?
• ▲
▼
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;
Gast #2579440
Lesenswert?
• ▲
▼
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);
#3446907
Lesenswert?
• ▲
▼
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.