2017-04-12 27 views
0

我正在用matlab與幾臺機器通訊。用Matlab與usb B型機器通訊的麻煩

我正嘗試使用usb b連接LCC25(由Thorlabs製造的液晶緩速器控制器)以連接USB電纜。

我做了這樣的代碼。

clear all; clc; 
%% 
ss=serial('COM7','BaudRate',9600,'DataBits',8); 

set(ss,'Parity','none'); 

set(ss,'Terminator','LF'); 

fopen(ss); 

fprintf(ss,'*idn?'); 

aa=fscanf(ss) 

fclose(ss) 

然後我得到「警告:讀取失敗:發生超時終結者達到AA ==前」

有沒有在我的代碼什麼問題?

回答

0

我也有興趣購買的LCC25與MATLAB控制它,所以這是非常有趣的,我和我很想看看它是否工作......

要調試代碼,我想知道當你註釋掉一切都發生了什麼,但:

ss=serial('COM7','BaudRate',9600,'DataBits',8); 
set(ss,'Parity','none'); 
set(ss,'Terminator','LF'); 
fopen(ss); 

從那時起,我們現在可以,如果這個問題是在建立連接本身,或試圖發送一個命令(你不應該BTW每次運行!)該設備...

如果obj ECT創作是成功的,你應該看到這樣的事情:

Serial Port Object : Serial-COM4 

    Communication Settings 
     Port:    COM7 
     BaudRate:   9600 
     Terminator:   'LF' 

    Communication State 
     Status:    closed 
     RecordStatus:  off 

    Read/Write State 
     TransferStatus:  idle 
     BytesAvailable:  0 
     ValuesReceived:  0 
     ValuesSent:   0 

那麼你可以嘗試添加運行

fopen(ss) 
fscanf(ss) 

在一個單獨的文件,看看輸出是什麼。如果所有這些都有效,你可以開始嘗試使用'fprintf'命令發送命令,但是確保不要每次都運行'serial'和'fopen'命令我想知道你從哪裏獲得命令字符串' * idn?',你是否在幫助文件中找到了這個?終結器'LF'也一樣,你確定這是用於LCC25的正確終結器嗎?在閱讀收到的錯誤消息時,我懷疑問題在於您可能需要使用其他終結符,如'CR'。