問題

私は最近、Windows 7デスクトップに通常のUSBケーブルを使用してUSB組み込みデバイス(mbed LPC1768)を接続しました。デバイス上で実行されているプログラムに付属しているドキュメントによると、仮想USBシリアルポート上のホスト(デスクトップ)と通信します。

C#を使用してデータを読み書きする必要がある場合はどこから始めますか? SerialPort .NETクラスを使用できますか、LibUsbDotNetライブラリなどを使用する必要がありますか?

  ベストアンサー

シリアル接続が理解しやすいため、USBHIDではなくVCPでUSBデバイスが通信することがわかったときは素晴らしいニュースです。

デバイスがVCP(Virtual Com Port)で動作している場合、System.IO.Ports.SerialPortタイプを使用するのと同じくらい簡単です。デバイスに関するいくつかの基本的な情報を知る必要があります。そのほとんどはWindows Management(Device Manager)から収集できます。次のように構築した後:

 SerialPort port = new SerialPort(portNo, baudRate, parity, dataBits, stopBits);
 

は、 でないかもしれません。 たとえば、Request to send (RTS) や Data Terminal Ready (DTR)

 port.RtsEnable = true;
port.DtrEnable = true;
 

そしてポートを開きます。

port.Open();

リッスンするには、port.DataReceived にイベントハンドラをアタッチし、port.Read(byte[] buffer, int offset, int count)

 port.DataReceived += (sender, e) => 
{ 
    byte[] buffer = new byte[port.BytesToRead];
    port.Read(buffer,0,port.BytesToRead);
    // Do something with buffer
};
 

送信するには、port.Write(byte[] buffer, int offset, int count)

  同じタグがついた質問を見る

c#windowsserial-portusbmbed