Wie zu Lesen ist, serielle Daten richtig durch Matlab

Ich bin mit Matlab zum Lesen von Daten von einem seriellen port kommen, die durch einen Mikroprozessor gesteuert. Die Daten werden im hexadezimalen format mit jeder Probe von 4 bytes(32 bits). Wenn ich diese Daten Lesen, bekomme ich ein paar zufällige Folge von zahlen, die nicht mit den übermittelten Daten. Unten ist mein code

s = serial('COM16'); %assigns the object s to serial port

set(s, 'InputBufferSize', 128); %number of bytes in inout buffer
set(s, 'FlowControl', 'none');
set(s, 'BaudRate', 921600);
set(s, 'Parity', 'none');
set(s, 'DataBits', 8);
set(s, 'StopBit', 1);
set(s, 'Timeout',100);
%clc;

disp(get(s,'Name'));
prop(1)=(get(s,'BaudRate'));
prop(2)=(get(s,'DataBits'));
prop(3)=(get(s, 'StopBit'));
prop(4)=(get(s, 'InputBufferSize'));

disp([num2str(prop)]);

fopen(s);           %opens the serial port

data = fscanf(s);

fclose(s); %close the serial port

Bitte sagen Sie mir, was mache ich falsch Mach, dass ich die richtige Herzens-sound.
Dank

Können Sie passen Sie Ihre mikrocontroller-baudrate? Wenn ja, könnten Sie versuchen, mit einer niedrigeren baudrate? 921600 ist Recht hoch. 115200 vielleicht?
Auch haben Sie versucht, mit einem terminal-Programm?
Sicher, ich werde es mal ausprobieren. Eigentlich ist der Algorithmus erfordert meine UART-Geschwindigkeit sehr hoch sein, das ist, warum ich es so einrichten, 921600.
Was meinst du mit terminal-Programm? Ich weiß nicht, was es ist. Können Sie das erklären?
Ich erkannte, dass ich geschrieben habe nicht das freeware-terminal-Programm den Namen. Es ist Realterm, im Falle einer zukünftigen Besucher braucht.

InformationsquelleAutor Khushboo | 2013-01-09

Schreibe einen Kommentar