我正在尝试通过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);
答案 0 :(得分:3)
您可以尝试以下操作:
function r = Move(ref,left,right)
fprintf(ref,'C,%d,%d', left, right);
out = fscanf(ref)