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 回答