STM32F4DiscoveryでCubeMXを試す

「STM32F4DiscoveryでCubeMXを試す」の編集履歴(バックアップ)一覧はこちら

STM32F4DiscoveryでCubeMXを試す」(2015/04/20 (月) 15:33:30) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

<p>習うより慣れろ的な部分もありますので、まずは使ってみましょう</p> <div style="border-top:#ccc 1px solid;border-right:#ccc 1px solid;background:#eee;border-bottom:#ccc 1px solid;padding-bottom:5px;padding-top:5px;padding-left:10px;border-left:#ccc 1px solid;padding-right:10px;"> CubeMXを起動する</div> <p>デスクトップにできたアイコンをクリックして実行。まずはプログラム等が最新版であるかチェックします。</p> <p>[Help] - [Check for Updates] を実行し、チェックボタンをクリック。もし更新ファイルがあればインストールします。続いて</p> <p>[Help] - [Install New Libraries] を実行。</p> <p><img alt="" src="http://cdn63.atwikiimg.com/tukinkaisoku?cmd=upload&amp;act=open&amp;pageid=5&amp;file=New+Libraries+Manager.png" style="height:800px;width:700px;" /></p> <p>STM32CubeMX Releasesと、STM32CubeF4 Releasesが最新であることを確認します。古い場合はチェックを入れて、[Install Now]をクリック。更新に多少時間がかかりますので慌てずに待ちます。</p> <p> </p> <div style="border-top:#ccc 1px solid;border-right:#ccc 1px solid;background:#eee;border-bottom:#ccc 1px solid;padding-bottom:5px;padding-top:5px;padding-left:10px;border-left:#ccc 1px solid;padding-right:10px;"> 新しいプロジェクトを作成する</div> <p>メイン画面のNew Projectをクリック。基盤を選択します。STM32F4Discoveryを使いますので、それを選択します。</p> <p><img alt="" src="http://cdn63.atwikiimg.com/tukinkaisoku?cmd=upload&amp;act=open&amp;pageid=5&amp;file=New+Project.png" style="height:766px;width:675px;" /></p> <p> 今回は評価基板のDiscoveryを使いますが、自作基板等の場合は、MCUを選択することになります。が、いきなり自作基板を作れちゃう人は、このページみてないと思うので説明省略。</p> <p> </p> <div style="border-top:#ccc 1px solid;border-right:#ccc 1px solid;background:#eee;border-bottom:#ccc 1px solid;padding-bottom:5px;padding-top:5px;padding-left:10px;border-left:#ccc 1px solid;padding-right:10px;"> 機能の設定</div> <p> マイコンで実装する内容を左側のツリーから選択すると、ピン割り当てが行われ右側に表示されます。このピン割り当ては非常に重要で、異なる機能でピンが重複すると実装できません。これを回避するために、他のピン候補もある程度あり避けられますが、どうしても被る場合は機能そのものを選択することになります。本来はデータシートで一覧表をみながら考えたりするのですが、これだとピンに色まで付くのでわかりやすいですね。</p> <p><img alt="" src="http://cdn63.atwikiimg.com/tukinkaisoku?cmd=upload&amp;act=open&amp;pageid=5&amp;file=pinout.png" style="height:900px;" /></p> <p> この画面をみるとわかる通り、STM32F4Discoveryに実装されているボタンやLED、MEMS(ジャイロ等)がデフォルトで選択されています。灰色のピンが未割り当てとなり自由に使えるピンとなります。<br /> 機能ツリーを見るとわかるとおり、すでにピン衝突が発生しています。全ての機能を同時に使えないであろうことが一目瞭然です。<br /> 今回、まずは動かしてみることが目的ですので、ボタンとLEDが使えればOKということで、何も変更しないでOKです。</p> <p> </p> <div style="border-top:#ccc 1px solid;border-right:#ccc 1px solid;background:#eee;border-bottom:#ccc 1px solid;padding-bottom:5px;padding-top:5px;padding-left:10px;border-left:#ccc 1px solid;padding-right:10px;"> クロックの設定</div> <p> 機能の設定と同等以上に重要な設定がクロックです。マイコンは全てクロックを基準に動作しますので、この設定が間違っていると想像したものと違う動きになります。<br /> まだこの段階ではクロックを変更する必要がないのですが、それぞれのクロックがどのように影響し、また設定されているかわかりますので、非常に便利な画面です。タイマ等を使うとき、どのクロックが基準になっているかで、1カウントの速さがかわりますのでとても重要です。</p> <p><img alt="" src="http://cdn63.atwikiimg.com/tukinkaisoku?cmd=upload&amp;act=open&amp;pageid=5&amp;file=Clock+Configuration.png" style="height:900px;" /></p> <p> 余談ですが、マイコンにはRTC(リアルタイムクロック)とよばれる機能があります。マイコンの電源を切っても時計は保持しておきたい、と誰もが思うことでしょう。この機能を実装するにはマイコン電源のほかに、時を刻む水晶発信器と電源(ボタン電池)が必要です。残念ながらSTM32F4Discoveryには両方とも未実装です。データシートの回路図の通り、回路自体はありますでの自分でRTC用水晶発信器をつけ、電池を組み込むと動作するようになります。この場合、ピン設定画面でRCCのLSEを有効にし、この画面でRTCへの接続をLSIからLSEに変更することで対応できます。従来であれば面倒な手順で初期化して定義する必要がありましたが、画面で設定するだけで実装できるのはありがたいですね。</p> <p> </p>
<p>習うより慣れろ的な部分もありますので、まずは使ってみましょう</p> <div style="border-top:#ccc 1px solid;border-right:#ccc 1px solid;background:#eee;border-bottom:#ccc 1px solid;padding-bottom:5px;padding-top:5px;padding-left:10px;border-left:#ccc 1px solid;padding-right:10px;"> CubeMXを起動する</div> <p>デスクトップにできたアイコンをクリックして実行。まずはプログラム等が最新版であるかチェックします。</p> <p>[Help] - [Check for Updates] を実行し、チェックボタンをクリック。もし更新ファイルがあればインストールします。続いて</p> <p>[Help] - [Install New Libraries] を実行。</p> <p><img alt="" src="http://cdn63.atwikiimg.com/tukinkaisoku?cmd=upload&amp;act=open&amp;pageid=5&amp;file=New+Libraries+Manager.png" style="height:800px;width:700px;" /></p> <p>STM32CubeMX Releasesと、STM32CubeF4 Releasesが最新であることを確認します。古い場合はチェックを入れて、[Install Now]をクリック。更新に多少時間がかかりますので慌てずに待ちます。</p> <p> </p> <div style="border-top:#ccc 1px solid;border-right:#ccc 1px solid;background:#eee;border-bottom:#ccc 1px solid;padding-bottom:5px;padding-top:5px;padding-left:10px;border-left:#ccc 1px solid;padding-right:10px;"> 新しいプロジェクトを作成する</div> <p>メイン画面のNew Projectをクリック。基盤を選択します。STM32F4Discoveryを使いますので、それを選択します。</p> <p><img alt="" src="http://cdn63.atwikiimg.com/tukinkaisoku?cmd=upload&amp;act=open&amp;pageid=5&amp;file=New+Project.png" style="height:766px;width:675px;" /></p> <p> 今回は評価基板のDiscoveryを使いますが、自作基板等の場合は、MCUを選択することになります。が、いきなり自作基板を作れちゃう人は、このページみてないと思うので説明省略。</p> <p> </p> <div style="border-top:#ccc 1px solid;border-right:#ccc 1px solid;background:#eee;border-bottom:#ccc 1px solid;padding-bottom:5px;padding-top:5px;padding-left:10px;border-left:#ccc 1px solid;padding-right:10px;"> 機能の設定</div> <p> マイコンで実装する内容を左側のツリーから選択すると、ピン割り当てが行われ右側に表示されます。このピン割り当ては非常に重要で、異なる機能でピンが重複すると実装できません。これを回避するために、他のピン候補もある程度あり避けられますが、どうしても被る場合は機能そのものを選択することになります。本来はデータシートで一覧表をみながら考えたりするのですが、これだとピンに色まで付くのでわかりやすいですね。</p> <p><img alt="" src="http://cdn63.atwikiimg.com/tukinkaisoku?cmd=upload&amp;act=open&amp;pageid=5&amp;file=pinout.png" style="height:900px;" /></p> <p> この画面をみるとわかる通り、STM32F4Discoveryに実装されているボタンやLED、MEMS(ジャイロ等)がデフォルトで選択されています。灰色のピンが未割り当てとなり自由に使えるピンとなります。<br /> 機能ツリーを見るとわかるとおり、すでにピン衝突が発生しています。全ての機能を同時に使えないであろうことが一目瞭然です。<br /> 今回、まずは動かしてみることが目的ですので、ボタンとLEDが使えればOKということで、何も変更しないでOKです。</p> <p> </p> <div style="border-top:#ccc 1px solid;border-right:#ccc 1px solid;background:#eee;border-bottom:#ccc 1px solid;padding-bottom:5px;padding-top:5px;padding-left:10px;border-left:#ccc 1px solid;padding-right:10px;"> クロックの設定</div> <p> 機能の設定と同等以上に重要な設定がクロックです。マイコンは全てクロックを基準に動作しますので、この設定が間違っていると想像したものと違う動きになります。<br /> まだこの段階ではクロックを変更する必要がないのですが、それぞれのクロックがどのように影響し、また設定されているかわかりますので、非常に便利な画面です。タイマ等を使うとき、どのクロックが基準になっているかで、1カウントの速さがかわりますのでとても重要です。</p> <p><img alt="" src="http://cdn63.atwikiimg.com/tukinkaisoku?cmd=upload&amp;act=open&amp;pageid=5&amp;file=Clock+Configuration.png" style="height:900px;" /></p> <p> 余談ですが、マイコンにはRTC(リアルタイムクロック)とよばれる機能があります。マイコンの電源を切っても時計は保持しておきたい、と誰もが思うことでしょう。この機能を実装するにはマイコン電源のほかに、時を刻む水晶発信器と電源(ボタン電池)が必要です。残念ながらSTM32F4Discoveryには両方とも未実装です。データシートの回路図の通り、回路自体はありますでの自分でRTC用水晶発信器をつけ、電池を組み込むと動作するようになります。この場合、ピン設定画面でRCCのLSEを有効にし、この画面でRTCへの接続をLSIからLSEに変更することで対応できます。従来であれば面倒な手順で初期化して定義する必要がありましたが、画面で設定するだけで実装できるのはありがたいですね。</p> <p><em>2015/04/20 追記</em></p> <p><em>RTCのクロックにLSEを使うには、アラームAを有効にしないと選択できない。<br /> さらに、CubeMXで生成されるソースには不具合があり、HAL_Get_Time()が正常に動作しない。ソースの中の sTime-&gt;SubSeconds = (uint32_t)(hrtc-&gt;Instance-&gt;SSR); をコメントアウトする必要あり。</em></p>

表示オプション

横に並べて表示:
変化行の前後のみ表示: