MATLAB序列中的终结器无法正常工作

时间:2015-11-04 12:54:42

标签: matlab serial-port serial-communication

我对Matlab串行组件中的终结者有疑问。

% Open a port
port = serial (comPort, 'Baudrate', 38400, 'Flowcontrol', 'none' ...
 ,'Parity', 'none', 'StopBits', 1, 'DataBits', 8 ...
 ,'Terminator', {'CR/LF', 'CR'}...
 );
fopen (port);

initCmd = '/1ZR';

% initialize pump
fprintf(port, '%s\n', initCmd);
reply = fscanf(port)

我的泵的通讯协议要求发送回车并回复回车和换行(我希望我在示例代码中正确定义。

当我现在发送初始化命令时,泵启动正常并发送以下reply

>> reply =

ÿ/0@

>> int8(reply)

ans =

  127   47   48   64    3   13   10

但即使回复包含CR/LF

,我也收到以下警告
Warning: Unsuccessful read: A timeout occurred before the Terminator was reached.

除了reply之外,127是正确的。根据手册,我不希望这样。 MATLAB是否完全解释了答案错误?

问题出在哪里?数字13 10的最后一个表示终结符,但MATLAB无法检测到它?

0 个答案:

没有答案