USB CDC (PC側)

(2017.8.5 作成)

 マイコン(STM32)をCDC(Communication Device Class)モードでUSB接続した際に使用する方法を紹介したいと思います。といっても普通にシリアルポートを使用してRS-232Cデバイスを操作するのと全く同一になります。

 CDCでなくHIDとして接続するときのプログラムはこちらを見てください。

 HIDと異なりマイコンを接続する前にドライバ(Virtual com port)をインストールする必要があります。STマイクロさんのページからダウンロードできるので事前にインストールをお願いします。

 

 上にも書いていますが、PC側のソフトとしては特に変わったことはしていませんがこちらからダウンロードしていただけます。Visual studioで作成したC#のプロジェクトになります。このサンプルプロジェクトはマイコン側と合わせて使用するものですので、そちらも併せてご確認ください。

 

 送受信を行う主要なところのコードを下に載せます。あまり特別なことはしていないと思います。受信割り込みでフォーム上のコンポーネントを操作するため、Invokeするぐらいでしょうか?

//受信割り込み
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
        byte[] data = new byte[serialPort1.ReadBufferSize];
        serialPort1.Read(data, 0, serialPort1.BytesToRead);
        Invoke((MethodInvoker)(() =>
        {
                textBoxReceiveText.Text = BitConverter.ToString(data);
        }));
}

//送信 (LED制御)
private void checkBoxLED_CheckedChanged(object sender, EventArgs e)
{
        if (!serialPort1.IsOpen) return;
        if (checkBoxLED.Checked)
                serialPort1.Write(new byte[] { 1 }, 0, 1);
        else
                serialPort1.Write(new byte[] { 0 }, 0, 1);
}
}