2011-06-29 32 views
1

vxworksでシリアルポート経由でデータを送信する必要があります。私は次のコードを使用しています。しかし それは働いていません。何が間違っていたのか誰でも指摘できますか?vxworksでのシリアルポートアクセスが動作しない

int f; 

if(f=open("/tyCo/1",O_RDWR,0)<0) 
{ 
    printf("Error opening serial port."); 
    return 1; 
} 

write(f,"hello",5); 

このコードを実行した後に、データはシリアルポートを通して来ていないが、代わりにそれは 端子(トルネードシェル)スルーしています。このシステムには、tyCo/1と/ tyCo/0という2つのシリアルデバイスがあります。私はそれらの両方を試しましたが、問題は解決しません。

ありがとうございました Likhin。

答えて

1

ボーレートを設定しましたか?

if (iocl(m_fd, FIOBAUDRATE, rate)) == ERROR) 
{ 
    //throw error 
} 
0

デバイスに間違った名前を使用していて、Tornado Shellがデフォルトのデバイスに設定されている可能性があります。デフォルトのデバイスで

一致するデバイス名が見つからない場合は、I/O機能が向けられている :vxdev.comから。このデフォルトデバイスを システム内の任意のデバイスに設定できます。デバイスをまったく含まない場合は、デバイス と一致しないとエラーが返されます。 ioDefPathGet()を使用すると、現在の既定のパスを取得できます。 ioDefPathSet()を使用すると、デフォルトのパスを設定できます。

0

"open"コマンドの3番目のパラメータは、私が間違っていない場合、モードです。 UNIXとのコードの比較可能性を除いて、vxworksで何が必要なのかは分かりません。短期間で、0644や0666のような値を与えてください。これは役に立ちます。

関連する問題