0
我正尝试通过matlab函数和.mex文件与差分驱动器移动机器人通信。我能成功地用命令移动机器人:matlab中的fprintf(串行通信)
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);
试过了,没有工作。抱歉没有发布此问题。 – Makaroni 2012-07-13 12:39:47
@Makaroni你用哪个参数来调用'move'函数? '移动(ref,1000,1000)'? – 2012-07-13 12:43:41
是的,基本上。调用函数“移动”时,我可以放置0到20000之间的任何数字。 – Makaroni 2012-07-13 12:46:08