CubeIDEの使い方(起動~デバック実行)
1.本日の内容
(1) CubeIDEの起動からデバック実行までを行う。
(2) プログラムの内容は、LEDの点滅を行う。
(3) デバックにより、LEDのON/OFFに使用する変数の値を確認する。
・目次
2.内容
(1) やる内容の詳細
・CubeIDEをインストール
・CubeIDEを起動して、GPIOを設定
・コードを生成して、LEDのON/OFFのプログラムを作成
・デバックして、変数を確認
(2) 使用部品
個数 | 部品名 | 型番 |
---|---|---|
1 | USBケーブル | USBミニBタイプ |
1 | mbed(マイコンボード) | nucleo f401RE |
(4) プロジェクトの作成
(a) プロジェクトを作成する。(Fileの選択からCubeMXの表示まで)
・CubeIDEを起動する。
(workspaceを決めていない場合は、workspace(プロジェクトを作成する場所)を選択)
→日本語が入っていると、上手くいかない。
・File → NEW → STM32Projectをクリック
・File → NEW → STM32Projectをクリック
・Commercialに F401RET6を入力
・BoardにNUCLEO-F401REと記載されているものをクリック
・Nextをクリック
・Project Nameに、「プロジェクト名(LEDON1)」を入力
・Finishをクリック
・CubeMXが起動し、新規プロジェクトが作成される。
動画で手順を確認:
(b) CubeMXの設定
・PA5を左クリックし、GPIO_Outputを選択
・PA5を右クリックし、Enter User Labelをクリックする。
・LED1を入力する。
(c) プロジェクトのビルド
・左上の「ギアマーク」又は「トンカチマーク」をクリックする。
・トンカチマーク:コードの生成とビルドを行う。
・ギアマーク:コードの生成
(5) プログラムの確認
(a)コードの生成を行うと、プログラム作成画面に遷移する。
(b) 下記箇所に下記コードを作成する。
/* USER CODE BEGIN 2 */ uint8_t x = 0; /* USER CODE END 2 */
while (1) { /* USER CODE BEGIN 3 */ //LED点滅 HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,x); if(x == 0){ x = 1; }else{ x = 0; } HAL_Delay(500); } /* USER CODE END 3 */
(6) プログラム内容
(a) HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,x);
xが1の時、LED1がON
xが0の時、LED1がOFFになる。
(b) if文により、
x = 1の時は、x = 0に
x = 0の時はx = 1に変更する
これをwhileでループすることにより、LEDのON/OFFを行う。
また、このxの変数をデバックで確認する。
(c) HAL_Delay(500);
500ms待つ。 これにより500msに一回、ON/OFFするようになる。
(7) デバック
(1) nucleof401をPCに接続する。
(2) 歯車マークを押して、debugを実行する。
(3) debug画面に移動するので、再生マークをクリックする。
(4) プログラムが書き込まれ、LEDの点滅が開始する。
(5) breakポイントを設定し、変数の値を確認する。
(6) 確認したい変数の上でダブルクリックし、選択する。
(今回の場合はx)
(7) 右クリックし、Add Watch Expression・・をクリックする。
(8) Expression to watchが出てくるので、そのままOKを押す。
(9) Expressionsのwindowsが出てくるが、このままでは、値の確認はできない。
(10) 値を確認するためには、breakを設定する必要がある。
(11) ソース左側の青い所をダブルクリックする。
→これでbreakポイントが設定される。
breakポイントに処理がくると、そのプログラムを停止する。
(12) 設定したbreakポイントで自動的にプログラムは停止する。
(13) プログラムが止まると、ExpressionsウィンドウのValue部分に、
その時のxの変数の値が表示される。
今回の場合は、0が表示されている。
(14) 再生マークをクリックすると、breakで止まった所から処理が再開する。
※これにより、自分の想定している値になっているのかどうか、動きを確認することができる。
上記動画でもここのデバック確認まで行っているので、そちらも参照。
参考:
STM32CubeIDEユーザーガイド
https://www.st.com/resource/ja/user_manual/um2609-stm32cubeide-user-guide-stmicroelectronics.pdf