0

matlab 関数と .mex ファイルを介して、差動駆動型モバイル ロボットと通信しようとしています。次のコマンドでロボットを正常に動かすことができます。

ref = serial('COM1');
set(ref,'BaudRate', 9600);
fopen(ref);

fprintf(ref,'C,1000,1000');
out = fscanf(ref)

fclose(ref)
delete(ref)

ただし、インクルードを作成した関数は機能しfprintfません。

function r = Move(ref,left,right)

fprintf(ref,'C,left,right');
out = fscanf(ref)

問題はコマンドで使用される別の文字列fprintf(つまり、'C,1000,1000' は 'C,left,right' と等しくない) であることは認識していますが、この問題を解決できません。これが些細すぎる場合は申し訳ありません。

答えは次のとおりです(以下のコメントを参照):

function r = Move(ref,left,right)

fprintf(ref,sprintf('C,%d,%d', left, right));
out = fscanf(ref);
4

1 に答える 1

3

次のことを試すことができます。

function r = Move(ref,left,right)

fprintf(ref,'C,%d,%d', left, right);
out = fscanf(ref)
于 2012-07-13T12:32:09.380 に答える