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