libraryを利用したものです。NucleoF401REとSTM32F103C8T6のどれでも共通して使え、かつ64バイトの任意のデータを送受信できるようにしています。Libraryのバージョンは2.4.2になります。マイコン基板ごとの注意点F3DiscoveryF3Discoveryを利用する場合は特に追加部品は必要ありません。USBとして動作します。両方接続するとデバッグ時にはステップ実行も可能になります。Em::Blocksを用いてF3Discoveryを使用する場合一点注意事項があります。バージョン2.30の場合だけかもしれませんが、"startup_stm32f30x.S"の中身を以下のように修正する必要があります。F401RENucleoの場合USBデバイス用のコネクタが搭載されていませんので、自分で接続する必要があります。下は秋月電子さんのUSBコネクタキットを使用した場合の例です。D+ピンを1.5KΩで3.3VにプルアップすることでハイスピードUSBデバイスとして認識させます。環境設定ダウンロードページからDKSlib_STM32HALとDKSlib_STM32USBをダウンロードしてください。プロジェクトへのライブラリの追加方法はこちらで紹介していますので、同じようにプロジェクトへ追加してください。一点注意していただきたいことはCDCクラスとHIDクラスに対して共通のCoreクラスを使用することになっています。このためダウンロードして出てきたDKSlib_stm32USBフォルダ全体をプロジェクトに追加するのではなく、CoreフォルダとHIDフォルダ(またはCDCフォルダ)をそれぞれ追加するようにしてください。しないとHIDとCDCでファイルの重複が発生します。使い方あまり設定することはないと思います。下のサンプルコードも合わせてご確認ください。任意のタイミングで送信用関数を呼び出してください。1回に送信するサイズは64バイトに設定されています。この際、64バイトすべてを使用するバージョンと最初1バイトをヘッダとして利用する2バージョンの送信用関数が利用できます。受信ホストからデータを受け取るとインスタンス作成時に設定したコールバック関数が呼び出されます。このコールバック関数から抜けることで受信完了となりますので、複雑な処理等は別途行うことを考慮してください。コールバック関数内で新たに通信を始めようとすることは避けるべきです。0);戻り値なし引数DataReceiveデータ受信時に毎回呼び出されるコールバック関数を設定します。Data長は64バイト固定です。64バイト以上を設定しても超える部分は送信されません。接続が確立しておらず、送信に失敗するとfalseが返ります引数63バイトまでの任意のデータ備考63バイト以上を設定しても超える部分は送信されません。最初の1バイトにヘッダ情報が記載されています。最初の接続時等に使用します。IsConnected()有効な接続が確立しているかサンプルコードF3Discoveryに以下のコードを書き込んでください。Discovery基板上のLEDとプッシュボタンで動作していることが確認できると思います。PC側のソフト例はこちらにあります。{}}発展ポーリング間隔変更usbd_customhid.cの105行目、114行目を編集してください。114行目がDataOut(PCからデバイス)への間隔です。マウスやキーボードとして動作させるDKS_UsbHid.cppにレポートディスクリプタの本体が入っています。ここを修正すると動くようになる(ハズ)です。編集Jimdoあなたもジンドゥーで無料ホームページを。