
Nucleoプラットフォームが好きで、Nucleo-F401REボードを購入しました。
マイクロコントローラの内部デバイスを掘り下げたいという望みはなく、mbedライブラリが私の注意を引きました。 このライブラリは、このボードのサポートを主張しています。
Habréでは、すでにクイックスタートNucleo + mbedの出版物があります(
「クイックスタートST Nucleo-F401 +ショートガイド」 、
「STM32Nucleo。ILI9341チップに基づいてTFT LCDを接続します
」 )。 ただし、すべての例はオンラインIDEで提供されています。 しかし、私はこのオプションがあまり好きではなかったため、デスクトップIDEを探し始めました。
mbed.orgの
記事で Eclipseを試しました。 しかし、この例は別のコントローラー用に作成されており、STM用の命令を適応させることができなかったため、このオプションは使用できなくなりました。
それから彼は
CooCox CoIDEに目を向け
始めました 。 残念ながら、CoIDEはSTM32F401REコントローラーを公式にサポートしていません。 しかし、試してみてください。
CoIDEをダウンロードしてください 。 ページの下部に2つのリンクがあります:CoCenterが最初にロードされます。 これは、CooCox Webサイトで提供されるすべてのプログラムのインストールと更新を制御できるランチャーです。 CoIDEのみが必要だったため、2番目のリンクを使用しました。 このプログラムはWindows環境でのみ機能しますが、私には適しています。
CoIDEは、CoBuilderとCoDebuggerを統合します。 ただし、コンパイラが欠落しているため、個別にインストールする必要があります。
同じページに、外部コンパイラの設定手順への
リンクがあります
。GCCARM Embeddedのインストール
が推奨されています。 ここから、Windowsのインストールパッケージをダウンロードします。
次に、インストールに進みます。 CoIDEをインストールします。 パスのキリル文字に関する問題を回避するために、「c:\ CooCox \ CoIDE \」をインストールするパスを選択しました。 次に、コンパイラをインストールします。 このコンパイラを他の目的に使用する予定はないので、インストールパスは「c:\ CooCox \ GNU Tools ARM Embedded \ 4.8 2014q3 \」を選択しました。
CoIDEを実行し、メニュー項目「プロジェクト-ツールチェーンパスの選択」を選択します。

コンパイラへのパス「C:\ CooCox \ GNU Tools ARM Embedded \ 4.8 2014q3 \ bin」を指定します。

すべて、プログラムを書くことができます。
しかし、私はmbedライブラリを使いたかった。 これは、以前のクイックスタート記事が役立つ場所です。
サイトにアクセスして、既存のプロジェクトを選択します。 お気に入りのプロジェクトNucleo_blink_ledで作業します。

ツリーでこのプロジェクトを選択し、マウスの右ボタンをクリックして、開いたメニューの「プログラムのエクスポート...」項目を選択します。 次に、ターゲットプラットフォーム(「ST Nucleo F401RE」)およびIDE(「CooCox CoIDE」)を示します。

「エクスポート」ボタンをクリックして、アーカイブ「Nucleo_blink_led_coide_nucleo_f401re.zip」を取得します。 アーカイブには、プロジェクト名「Nucleo_blink_led」のフォルダーが含まれます。これは、CoIDEプロジェクトのフォルダーに展開する必要があります。 私の場合、「c:\ CooCox \ CoIDE \ workspace \」です。
私たちが起動したCoIDEで、メニュー項目「ファイル-ファイルを開く...」を選択し、フォルダー「C:\ CooCox \ CoIDE \ workspace \ Nucleo_blink_led」でファイル「Nucleo_blink_led.coproj」を選択します。

プロジェクトが開き、コンパイルの準備が整いました。

メニュー項目[プロジェクト-ビルド](ツールバーの[ビルド]ボタンまたはF7キー)を選択します。 表示されるコンソールで、「BUILD SUCCESSFUL」というメッセージが表示されます。

次に、いくつかの方法があります-オンラインIDEの場合のように、結果ファイル「Nucleo_blink_led.bin」をフォルダー「c:\ CooCox \ CoIDE \ workspace \ Nucleo_blink_led \ Nucleo_blink_led \ Debug \ bin \」からボードにコピーするか、 「デバッグ-デバッグ」メニュー項目(ツールバーの「デバッグの開始」ボタンまたはCtrl + F5)を選択するか、「フラッシュ-プログラムのダウンロード」メニュー項目(「コードのダウンロード先」ボタンを選択して、コントローラーを完成したプログラムでフラッシュすることにより、デバッグモードを開始できますツールバーの「Flash」)。

これらのアクションのいずれかの結果として、ボード上の緑のLD2 LEDが楽しく点滅するはずです。
これで停止することもできますが、1つのLEDでの点滅は退屈です。
したがって、7セグメントインジケーターCA56-12SRWAを使用して、複雑ではないスキームを組み立てます。 番号12、9、8、6のインジケータ脚は、高電圧が印加されたときにインジケータビット1、2、3、4の包含を制御します。 残りのレッグは、各親密度とポイントの個々のセグメントを担当し、電流制限抵抗を介して低電圧レベルの出力に接続する必要があります。 セグメントはすべての桁で同時に制御されるため、動的な表示を行います。
動的表示用のMain.cコード。#include "mbed.h" #define pause 0.005 void disp(char n); DigitalOut seg1(D8); DigitalOut seg2(D3); DigitalOut seg3(D5); DigitalOut seg4(D7); DigitalOut seg5(D9); DigitalOut seg6(D2); DigitalOut seg7(D4); DigitalOut seg8(D6); //dp DigitalOut dig1(D10); DigitalOut dig2(D11); DigitalOut dig3(D12); DigitalOut dig4(D13); int main() { dig1=0; // 1 dig2=0; // 2 dig3=0; // 3 dig4=0; // 4 seg8=1; // // while(1) { disp('0'); // '0' dig1=1; // wait(pause); // dig1=0; // disp('1'); // '1' dig2=1; // wait(pause); // dig2=0; // disp('2'); // '2' dig3=1; // wait(pause); // dig3=0; // disp('3'); // '3' dig4=1; // wait(pause); // dig4=0; // } } // void disp(char n) { switch (n) { case '0': // '0' seg1=0; // a ( ) seg2=0; // b ( ) seg3=0; // c ( ) seg4=0; // d ( ) seg5=0; // e ( ) seg6=0; // f ( ) seg7=1; // g ( ) break; case '1': seg1=1; seg2=0; seg3=0; seg4=1; seg5=1; seg6=1; seg7=1; break; case '2': seg1=0; seg2=0; seg3=1; seg4=0; seg5=0; seg6=1; seg7=0; break; case '3': seg1=0; seg2=0; seg3=0; seg4=0; seg5=1; seg6=1; seg7=0; break; default: seg1=1; seg2=1; seg3=1; seg4=1; seg5=1; seg6=1; seg7=1; break; } }
すべてのコメントは、プログラムのテキスト内にあります。
コントローラーをフラッシュすると、インジケーターにテキスト「0123」が表示されます。
このプログラムは完璧であるとは主張しておらず、必要に応じて、mbed.orgでこのようなインジケーターを管理するための既製のライブラリを見つけることができます。
その結果、インターネットを使用せずにNucleoとmbedライブラリを操作するためのIDEを入手しました。
私のプロジェクトではmbedリビジョン91ライブラリを使用しましたが、ライブラリを更新するときは、developer.mbed.org / compilerでNucleo_blink_ledプロジェクトを更新し、コンピューターに再エクスポートできます。 次に、プロジェクトの「mbed」フォルダを新しいものに更新し、プロジェクトを再コンパイルするだけです。