matlab中的fprintf(串行通信)

时间:2012-07-13 12:28:41

标签: string matlab printf

我正在尝试通过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,左,右'),但我无法解决这个问题问题。对不起,如果这太琐碎了。

答案是(见下面的评论):

function r = Move(ref,left,right)

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

1 个答案:

答案 0 :(得分:3)

您可以尝试以下操作:

function r = Move(ref,left,right)

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