メインコンテンツに移動

mbed-os5でUSBSerial

os2からos5へ変えていきなさいということを言われているらしいので、数週間ずっとチャレンジしていました。

直近でやりたかったことは、Keil Studio Cloudのos2では実現できていたので、これをos5に移行する試みだった。os5はmbed-os-example-blinky5を作って、LEDの点滅動作ができていることを確認してのち、USBSerialを追加するもの。

#include "mbed.h"
#include "platform/mbed_thread.h"
#include "USBSerial.h"

// Blinking rate in milliseconds
#define BLINKING_RATE_MS                                                    500
USBSerial usbserial;

int main()
{
    // Initialise the digital pin LED1 as an output
    DigitalOut led(LED1);
    int bb=0;
    usbserial.printf("Hello\n\r");
    while (true) {
        led = !led;
        thread_sleep_for(BLINKING_RATE_MS);
        usbserial.printf("%d",bb++);
    }
}

動作できれば、LED点滅とともに追加で用意したUSBコネクタに仮想COMで表示が出るはずだが出ない。そもそも、デバイスマネージャーでそのUSBが出てこない(接続するとデバマネのリストがリフレッシュされるはずふが、無反応)。

これはおかしい、ここから混迷期間、2週間ぐらいだろうか・・・

さまざまな、os5のライブラリバージョンに変えたり、名前を変えたりしていた。唯一、TargetをK64Fにしたとき、動作した。なぜ?Nucleoだけがダメなのか? さんざんググって読んだりしたが、どの記事も要点を得ない(要するに書いてあることがわからない。また情報もos5になると極端に少ない)。

結局のことろ、日本語フォーラムで答えを得た。

jsonファイルでUSBを有効にしていますか?

え?、なにそれ! このように書いてくれていた。ありがとうございます。

下記のNotebookを参考にしてみてください。
https://os.mbed.com/users/kenjiArai/notebook/usb-interface--usbhost-and-usbdevice/ 1 

実は、このNotebookは何度も参照して見てはいたのだが、要点を得ないというか理解できなかった。リンク先にある、サンプルプログラムにくっついているmbed_app.jsonファイルをプロジェクトの中に作って中身をそのまま書いたら、ビルドして動作できるようになった。

Nucleo-F411も、KL25zも、os5でUSBSerialが使えるようになった。

こんなこと、どのページも書いてなかった。それとも、ソフト開発者にとって当たり前なのか?、検索を下位ページまでみていくと、

mbedは、Arduinoみたいに、だれでもライブラリ突っ込んで動かせるようにできるものじゃない。ソフトがわかってないとできないから、最初に勉強しろ

このようなことを書かれても、何をどう勉強すればいいのかがわからないじゃないか。こちとら、定年前のじじーだぜ、あ、いや、年は関係ないね、、、。

正式なDocumenntはこれとのこと(これも読んでいたは、いたが、よくわからなかった、いまは多少わかった気にもなっているが、何をどうすればいいのか、はいまだにわからん)

https://os.mbed.com/docs/mbed-os/v6.15/program-setup/advanced-configura…

mbedのコンパイル条件などパラメータ設定に使用しているファイルです。

コメントを追加

Plain text

  • HTMLタグは利用できません。
  • ウェブページのアドレスとメールアドレスは自動的にリンクに変換されます。
  • 行と段落は自動的に折り返されます。