为什么我需要在Matlab中使用串口查询两次正确的回复?

时间:2016-04-12 20:19:56

标签: matlab serial-port

我需要与仅具有串行接口(RS-232)的旧温度控制器通信。 我使用Matlab而我的电脑没有串口。因此,我使用的是串口转USB适配器。

经过几个小时的挣扎,我终于得到了一个联系。但我总是需要两次查询以获得我期望的回复。

例如:

要求温度(最后查询也是临时的)

>> query(s,'in_pv_00')
ans =
      23.49

要求温度

>> query(s,'in_pv_00')
ans =
      23.49

要求版本

>> query(s,'version')
ans =
      23.49

我仍然得到临时值 然后,如果我再次查询版本

>> query(s,'version')
ans =
      JULABO HIGHTECH D-SERIES VERSION 4.0

我终于得到了版本 现在,要求临时,我仍然会得到版本一次,然后才能得到临时值

>> query(s,'in_pv_00')
ans =
      JULABO HIGHTECH D-SERIES VERSION 4.0
>> query(s,'in_pv_00')
ans =
      23.49

我使用的端口设置

s = serial('COM6');
set(s,'BaudRate',4800,'DataBits',7,'StopBits',1);
set(s,'Parity','even','Terminator',{'CR','CR'},'FlowControl','hardware');
fopen(s);

1 个答案:

答案 0 :(得分:0)

我仍然找不到行为的罪魁祸首 但是每当我开始测量时我都会刷新缓冲区,到目前为止,错误并没有以这种方式发生。