4

Matlabを使用して、マイクロプロセッサを経由するシリアルポートからデータを読み取ります。データは16進形式で、各サンプルは4バイト(32ビット)です。このデータを読み取ると、送信されたデータと一致しないランダムな数列が表示されます。以下は私のコードです

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

正しい心音が得られるように、私が間違っていることを教えてください。ありがとう

4

2 に答える 2

3

ボーレートを115200などのより標準的なものに下げることができます。

ターミナルプログラムで試すこともできます。

于 2013-02-06T14:01:18.073 に答える
0
serialOne=serial('COM1', 'BaudRate', 9600);

fopen(serialOne);

fprintf(serialOne,'textFile.txt'); <<<---this is for write  (for read, use fscanf)

fclose(serialOne);
于 2013-09-06T20:56:29.740 に答える