最近、ロボットのハードウェア制御用にnucleo-f446reと秋月のSTM32F303K8T6を
使っています。
一応、一通りの環境を整えたので、今回は秋月で購入できるSTM32F303K8T6マイコンで
Lチカするまでのメモです。
これが今回使うマイコンと変換基板。
ピッチ0.8とはんだ付けがそれほど難しくなく、Max72Mhzのマイコンが変換基板と
合わせても一個440円で手に入ります。かなりコスパが良いです。
ST-LINKを使う時の最小動作回路はこんな感じです。
私はNucleo搭載のST-LINKで書き込んでいます。ST-LINKのデバック機能はすべて使ってみたわけではないので、時間があればいじってみたいですね。
開発にはSTM32CubeMXとSW4STM32を使っていきます。ソフトのインストールは省略しますが、特に難しかったところはなかったと思います。
STM32CubeMXの設定
STM32CubeMXはGUIベースでマイコンのクロックやペリフェラル関係を設定でき、コードを生成してくれる便利なソフトです。
起動したらまず一番上のFile→New Projectから新規プロジェクトを作成します。
左のセレクトボックスからマイコンを選択します。今回はSTM32F303K8を選択します。
右に候補が出るのでチェックしてStart Projectを押します。
ピン設定をしたいところですが、忘れないうちにクロック設定をしてしまいましょう。
上の画像は内部クロックを使用した設定の一例です。
プロジェクト設定も先に済ませます。プロジェクト名ファイルパスとIDEの設定をします。
今回はSystem Workbench for STM32を使いたいのでプルダウンメニューから選択します。また、Aprication StructureをAdvancedにしておきます(これはよくわかっていない)。
いよいよピン設定です。灰色のピンはまだ設定されていないので右クリックで機能を
割り当てることができます。デバックで使いそうなところはかぶせたくないので先に
埋めておきます。
PA8,PA9から出力してLEDを点灯したいので、ピンを右クリックしてGPIO_OUTPUTを選択します。最後に右上のGENERATE CODEを押すとプロジェクトが生成されます。
SW4STM32でプログラミング
System Workbench for STM32(SW4STM32)でプログラミングしていきます。
上記事で生成したプロジェクトフォルダに.projectがあるはずなのでSW4STM32を指定して
実行します。
Core/Src/main.cに既にメイン関数も生成されていますので、Lチカのプログラムを追加していきます。
main.c 100行目付近
/* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_8); //PA8 出力切り替え HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_9); //PA9 出力切り替え HAL_Delay(100); //100ms停止 }
ここで注意があり、プログラムはUSER CODE BIGINとUSER CODE ENDのコメントの
間に書きます。こうしないとCubeMXを更新したときに消えてしまいます。
左上のハンマーみたいなマークでビルドし上の緑色の再生ボタンのようなマークで書き込んで実行します。
無事Lチカできました。
ちなみに、STM32CubeMXの設定を流用して新規プロジェクトを作りたいときは。
1:プロジェクト用の新規フォルダを作成
2:そこに流用したいプロジェクトの.iocファイルをコピー
3:コピーした.iocファイルでGENERATE CODEする。
で可能です。結構便利です。
今回は以上です。まだLEDチカチカできただけなので、次回はCPUの基本的な機能のサンプルプログラムを使ってみたいと思います。
0 件のコメント:
コメントを投稿