2012-03-03 15 views
0

私は編集のために私のPCにRS232ケーブル経由でAtmega168間のデータを転送したい!しかし、AtmegaはSerialPort.DataReceivedイベントの処理が速すぎます。シリアルポートを高速化する方法や管理されていないシリアルポートを使用する方法がありますか?SerialPortの性能

またそれだけで私は一度、この問題を持っていたからデータを読み込み、C++短いコードを追加して、それを解決し

Private Sub Me_DataReceived() Handles Me.DataReceived 
    DataLines.Add(Me.ReadLine().Trim) 
End Sub 
+0

どのようなタイプのハンドシェイクを使用していますか? Xon/Xoff、RTS/CTS、またはnone? –

+0

none ...私はハンドシェイクを変えるべきですか? – ribben

+0

noneを使用すると、送信デバイスはプログラムにデータをダンプし続け、データロスを引き起こします。ハンドシェイクを使用する場合は、両方のデバイスで設定する必要があります。また、RTS/CTSを使用する場合は、シリアルケーブルも変更する必要があります。唯一の他の選択肢は、もはやデータをドロップしなくなるまでボーレートを遅くすることです。 –

答えて

0

(文字列の)リストにエントリを追加動作していない既存のコードシリアルポートをプロジェクトに追加して、そのライブラリへの参照をC#プロジェクトに追加します。 C++コードは10倍以上速く実行されました。どのビットレートを使用していますか?