2018年11月23日金曜日

STM32 CubeMX (3) プロジェクトを作る

Summary

STM32-Nucleo の開発ツールである,CubeMXの3回目記事です。操作とやることはそれほど多く無いのですが,昔はマニュアルとにらめっこして何日もかかった作業が,クリックだけで間違い無く設定できます。使いこなして開発を楽しみましょう。


作るもの

PA0(Nucleo-A0)にボリュームを接続し,ボリュームにより基板上のLEDの明るさを変えるプロジェクトを作ってみます。PA0をAD変換し,PB3につながったLEDをPWMにより明るさを変更するだけになります。これだけでも実際に自分で動かすと感動できますよ。

使い方

PB3をクリックしTIM2-CH2を選択します。左側の設定では PWM Generation CH2 を選択します。これは PB3をTIM2-CH2に割り当てて,TIM2の中でPWM CH2の出力に割り当てますよとの宣言になります。知らない人も多いですがタイマーはたくさんのモードと機能があるので,ちゃんと動作モードを指定する必要があり,少し面倒なところです。
PA0は ADC-IN0 を選択すれば細かい設定はここではありません。

タイマーの説明ばかりですが,赤丸の部分を変更します。プリスケーラ=48とはクロックを48分周する設定で,48MHzのCPUクロックを48分周し,1MHz = 1 [us] を作ります。カウンターピリオド = 1000 で 1 [ms] の設定とし,このタイマーは 1 [us] ごとにカウントし,1 [ms] にてゼロに戻るという設定になります。
下のPulse (Value) にてPWMの変化タイミングを指定,プログラム中もこのレジスタを変更することで PWMの幅を変え,擬似的なアナログ出力を行います。
設定値から "-1" しているのは,CPUが0~カウントするためで,お約束として覚えておくと良いでしょう。

 AD変換は変更する部分は少ないですが,Sampling Time は初期値が最速になっているので,安定性のため一番遅い設定をおすすめします。

設定が終わったのでプロジェクトを作成します。プロジェクト名称とツールチェインを選択します。ツールチェインは使用する開発ツールに合わせる必要がありますが,使えるモノが一通り揃っているのと,後で変更できますので安心してください。


プロジェクト生成のコツとして,コード生成のルールを設定できます。初期値では大量のファイルがコピーされバックアップも大きくなるので,上記設定を使っています。ご参考にしてください。

ここまでで起動~ペリフェラルの初期設定~ループまでのコードが自動生成されます。そのままコンパイルして書き込んでも動作しますので,ペリフェラルや回路のデバッグ程度はソフト作れなくてもある程度できますね。時代の進化って感じです。

ワンポイント

プログラムの時にポート割付や設定を変えることも出来ますが,プロジェクトファイルを開いたまま作業すると,設定やコードが消えたり混乱するので,バックアップを取り,ツールは一つだけ立ち上げて作業するクセを付けましょう。

0 件のコメント:

コメントを投稿