Project_OKI’s diary

エンジニアの勉強ブログ

STM32マイコン学習_1(環境の導入:CubeMXとTrueStdioの使い方)

​​​​

環境の導入

 

1.本日の内容

 (1) STM32マイコン(nucleo f401RE)を使用するための、環境を入れる。
 (2) 入れた環境を使用して、プログラムを出力する。

 

使用する環境:

下記サイトの登録を行い、環境をそれぞれインストールする。

STM32CubeMX

TrueStdio

現在は、STM32 CubeIDEという統合環境があり、それを使うことが推奨されているが、

ここでは、CubeMXとTrueStdioを使用する。

 

​使用するマイコン:​

NUCLEO-F401RE

ピン配置:​https://os.mbed.com/platforms/ST-Nucleo-F401RE/

 

ダウンロードを行ったら、

下記手順でコードの作成を行ってみる。

今回は、PA_1にLEDを接続して、LEDの点滅を行う。

手元にLEDと抵抗がない場合は、nucleof401REについているLEDを使用することができる。

その場合は、下記でPA_1を指定しているところを、PA_5に設定する。

 

2.コード作成:CubeMXでコードを生成

(1)  STM32CubeMXを起動

(2)  File→New Projectを押す。

 

(3)  Board を検索する。(今回は、STM32F401REを使用)


(4)  nucleoというボードを使用するため:https://akizukidenshi.com/catalog/g/gM-07723/

(5)  ダブルクリックでボードの確定。

(6)  使用するpinをクリック。(今回は、Pin A1を使用する)


(7)  GPIO_Outputに変更


(8)  Project Managerに移動

(9)  Project Nameを変更(自分の好きな名前)

(10)  →今回は LED_1(Blinking)
   注:ここで「,」を使うとエラーが起こるので、名前に「,」は入れないようにすること。

(11)  Project Locationでこのプロジェクトを保存する場所を選択

(12)  Toolchain/IDEを変更

(13)  →今回は、TrueSTDIOを使用するため、TrueSTDIOに変更します。

(14)  GENERATE CODEを押す。


(15)  プロジェクトが作成される。

(16)  Opne Folderを押すと、作成したプロジェクトの場所に飛べる。


 

 

3.コード作成と実行:TrueStdioでプログラム実行

(1)  Atolic TrueStdioを起動



(2)  work spaceはそのままでOKを押す。

(3)  File →Open Projectを押す。


(4)  インポート元のディレクトリーをクリック

(5)  先ほどCubeMXで作成したファイルの場所を選択

(6)  フォルダーのチェックマークを先ほど作成したファイルの場所以外外す。

(7)  終了をクリック


(8)  ファイルが開かれたら、Core →Src→main.cをダブルクリック

(9)  →main.cに記載していく


(10)  int main(void){ }を探し、今回は繰り返すために、その中のWile(1){ }に処理を記載する。
 この時  /* USER CODE BEGIN 3 */と /* USER CODE END 3 */の間に記載します。
 この  /* USER CODE BEGIN xx */  /* USER CODE END xx */の間に記載しないと、CubeMXで再度コードを作成した際に、コードが消えてしまう。



(11)  下の方に行くと、HAL_GPIO_writePin(xxxx);というのがある。

(12)  これがCubeMXで作成したpinの初期設定となっている。


(13)  int main(void){ Wile(1) { }} に下記プログラムを記載する。


(14) プログラム内容

/* USER CODE BEGIN 3 */
//今回追加部分
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_SET); //PA1をON
HAL_Delay(1000);//1000ms待つ
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_RESET);//PA1をOFF
HAL_Delay(1000);//1000ms待つ

}
/* USER CODE END 3 */

(15)  トンカチマークをクリック→ビルドが実行される。

(16)  エラーが出なければOK

(17)  出たら調べてください。

ここまでで、プログラミングは完了になります。
ここから、プログラムを実行していきます。

(18)  Pin PA_1にLEDと抵抗を取付け。

(19) NUCLEO-F401REをPCに接続する。

(20)  歯車っぽい緑のやつをクリック

(21)  デバックを実行

(22)  もしも、main.cの場所を聞かれたら、Locale Fileをクリックmain.cを選択
   (2回目以降は必要なくなります。)


(23)  問題が無くなったら、再生をクリック


(24)  そうするとプログラムが実行され、LEDが点滅し始める。

以上でNucleo f401REのSTM32マイコンに、CubeMXとAtricTureStdioを使ってプログラムを書き込みLEDの点滅をしてみました。

下記動画を参考にやったので、これを見れば大体わかると思います。
この動画では、nucleo f401についているLEDとボタンを使って、割り込みとLEDのON/OFFをしています。(動画が埋め込めなかったので、URLを置いておきます。)


www.youtube.com

参考資料:https://www.stmcu.jp/design/document/training-materials_j/76200/

以上

 

関連ブログ

関連記事一覧:

組み込みC言語:

STM32マイコン_2(UART通信:TeraTermにHellow表示) - Project_OKI’s diary

STM32マイコン_3(UART通信:複数文字送信) - Project_OKI’s diary

STM32マイコン_4(NVICの設定内容) - Project_OKI’s diary

STM32マイコン_5(スイッチ入力とLED点灯、消灯) - Project_OKI’s diary

 

その他: 

CubeIDEの使い方(起動~デバック実行) - Project_OKI’s diary

SPI通信とは - Project_OKI’s diary

 

C言語:

組み込みの為のC言語基礎知識1(printf) - Project_OKI’s diary

C言語基礎知識2(for分で処理を繰り返す) - Project_OKI’s diary

C言語基礎知識3(配列) - Project_OKI’s diary

C言語基礎知識4(if文) - Project_OKI’s diary

C言語基礎知識5(switch文) - Project_OKI’s diary