如何使用Matlab从串口COM端口获取输入缓冲区

时间:2018-01-30 18:00:33

标签: windows matlab serial-port usb

我正在使用trinamic tmcm 351步进器通过usb连接到Windows 7,Matlab_R2016b。我正在尝试从步进器获得响应。代码如下所示:

function StepperMove(Steps,Speed)
  global StepperMotor;
  A = ['1 5 4 0 0 0 0 50 60']; 
  fwrite(StepperMotor,A);
  k=0;
  while (get(StepperMotor,'BytesAvailable')~=9) && (k<10)
    pause(0.1);
    k=k+1;
  end
  if k<10
    A=fread(StepperMotor,9)';
  else
    disp('error');
  end
  A = ['1 4 0 0 0 0 0 100 105'];
  fwrite(StepperMotor,A);
  k=0;
  while (get(StepperMotor,'BytesAvailable')~=9) && (k<10)
    pause(0.1);
    k=k+1;
  end
  if k<10
    A=fread(StepperMotor,9)';
  else
    disp('error')
  end
  disp(' ');
end

代码正常工作,直到第二个while循环和步进器发送响应。我也可以看到步进器移动。但在那之后,步进器没有发回答案。我可以看到没有'BytesAvailable'。谁能帮我?该脚本在Windows XP和Matlab_R2011b上运行良好。非常感谢提前。

0 个答案:

没有答案