2017-04-12 5 views
0

私はいくつかのマシンと通信するためにmatlabを使用しています。usbとの通信に問題MatlabのB型マシン

私はケーブルをusb bを使用してLCC25(Thorlabs製の液晶リターダコントローラ)に接続しようとしています。

私はこのようなコードを作成しました。

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); 

それ以来、私たちできるようになりました問題は、接続自体の確立である場合、またはにコマンドを送信しようとして(あなたがところでたびに実行すべきではありません!)デバイス...

objそして、あなたは別々のファイルに実行

fopen(ss) 
fscanf(ss) 

を追加しようと、出力が何であるかを見ることができます

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 

:電気ショック療法の作成が成功している、あなたはこのようなものが表示されるはずです。このすべてが動作する場合、あなたは「関数fprintf」コマンドを使用してコマンドを送信してみてくださいを開始しますが、「シリアル」を実行すると「はfopen」にないことを確認してくださいあなたはコマンド文字列」を取得したところ、私は疑問に思っておき

を命令することができます* idn? '、ヘルプファイルでこれを見つけましたか?ターミネータ 'LF'についても同じですが、これがLCC25に使用する正しいターミネータであることを確認してください。あなたが受け取ったエラーメッセージを読むとき、私は、あなたが 'CR'のような他のターミネーターを使う必要があるかもしれないということを疑う。