2014年7月13日日曜日

STM32CubeF3のUSB CDCミドルウェアがバグってる

STMicroelectronicsが用意したSTM32のUSB CDCミドルウェアが、少々バグってるらしい。
 PCからVCP(仮想COMポート)に送信した文字を、STM32F3DISCOVERYからエコーバックするだけのプログラムを書いたが、最初の1文字しかエコーバックされない。デバッガで調べると、2文字目以降でコールバック関数が呼ばれていないようだ。ぐぐってみたら、ズバリの現象を特定したスレがフォーラムに見つかった。
 USB middleware issue with CDC/VCP: only x packets receivable (HAL 1.1.0 and Host-Device_Lib 2.1.0)

 受信処理の中で、受信完了のコールバックを呼んでいないらしい。HeapSizeが小さすぎるという罠もあったらしいけど、これは試す前に書き換えた。

 VCPが通るようになったので、PCからコマンドを送る経路が確保する目処が立った。でも、リセットの度にUSB抜き差しして再接続は面倒。いずれFT232RLのUSB-UART変換に逃避してしまうかもしれない。

0 件のコメント:

コメントを投稿