STM32F407の場合、OTG_FSではSTM32F103よりもEndpointの数はさらに少なく、EP0を除くと、IN endpoint が3つ、OUT endpoint が3つしか使えません。つまり(CubeMXでの)CDCインターフェースの場合、1インターフェースで2 IN/1 OUTのエンドポイントを使うので、VCPは本来は1インターフェースが上限です。 しかし、前回の投稿でも少し言及したのですが、Command EP(Interrupt IN EP)を使わずVCPを構成する場合だと、Data IN EP/Data Out EPの組み合わせなので、論理的には3インターフェース(3IN/3OUT)まで構成できることになります。 そこで実際やってみたところ、Command EPを使う必要がない場合、つまり、簡易的にVCP/CDCとして機能させることで、3 vcp/cdcとして構成することができました。 今回はSTM32CubeIDEでプロジェクトを作成しました。コードは こちら です。なお 大元のコードはこちらでSTM32F103C8T6 Dual VCPです 。Thanks!! 動作確認は STM32 F4VE(通称) で行いました。115200でのテキスト送受信とzmodemでのファイル送受信および3ch同時受信は確認できましたが送信は同時に1ch半?という感じでした。9600でのファイル転送はzmodemではできませんでしたがkermitでの転送はできました。921600ではテキスト送受信とzmodemのファイル送受信はできましたが、2ch同時受信はできませんでした。CubeProgrammerは115200/Even/8/1でBluePillに接続できました。その他細かいところはチェックしていませんので簡易VCPの一例として参考程度にしてもらえればと思います。 なお使用にあたり当方は一切責任を負いませんのであしからずご了承ください。 F401/411/407のCortex-M4コアで安価にマルチチャンネル簡易VCPを構成する一方法かもしれません。ホストとUSB FS経由で3ch同時に小さなデータを送受信する事などはできそうです。参考までにこちらに STM32のUSBに関するApplication Note があり、(Gxxxを除く)どのMCUがど...