我需要与仅具有串行接口(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);
答案 0 :(得分:0)
我仍然找不到行为的罪魁祸首 但是每当我开始测量时我都会刷新缓冲区,到目前为止,错误并没有以这种方式发生。