コンテンツにスキップ
ショップ

STM32CubeIDEでLED点滅

いつものAIに相談

Gemini・その他のAI

このページの情報を添えて、仕組みや使い方、つくりたいものを相談できます。

Geminiを開く

質問文をコピーして、Geminiの入力欄に貼り付けてください。

質問文を確認

STM32 MCUリーフに搭載されたLEDを1秒おきに点灯/消灯させます。

対象は AP03 STM32 MCU です。STM32CubeIDEの設定を済ませ、STM32CubeProgrammerで書き込める状態にしておきます。プロジェクトに含まれるSTM32 HALとドライバを使うため、Arduino用のボードパッケージやライブラリの導入は不要です。

ソースの取得単位や、ビルド・書き込み・動作の切り分けはサンプルの動かし方でも説明しています。

以下のリーフを使用します

TypeNameQ’ty
AZ62Connector Cover1
AZ01USB1
AP03STM32 MCU1
AV01CR20321
CR2032 coin cell battery1
M2*10mm screw2

下図のようにリーフを組み立てましょう。

assemble1

  1. STM32CubeIDE-Sample-SoftwareのCode → Download ZIPでリポジトリ全体を取得して展開します。Gitを使う場合は同じリポジトリをcloneします。
  2. 展開先の Blinkフォルダを確認します。.project、.cproject、Core、Driversを含むプロジェクト全体を使います。main.cだけではビルドできません。
  3. STM32CubeIDEのFile → Import... → General → Existing Projects into Workspaceを選びます。Select root directoryにBlinkフォルダを指定し、一覧のBlinkプロジェクトを選んでFinishを押します。
  4. Project → Build Projectでビルドします。エラーなく完了し、Debug/Blink.elfが生成されたことを確認します。

配布リンクはmainブランチを指しているため内容が更新されることがあります。以前取得したプロジェクトに新しいファイルだけを混ぜず、同じ取得元の一式を使ってください。

Core/Src/main.cのwhile (1)内にある次の4行でLEDを制御します。行番号はソースの版によって変わります。

HAL_GPIO_WritePin(GPIOH, GPIO_PIN_3, GPIO_PIN_SET); // LEDを点灯
HAL_Delay(1000); // 待ち1000ms
HAL_GPIO_WritePin(GPIOH, GPIO_PIN_3, GPIO_PIN_RESET); // LEDを消灯
HAL_Delay(1000); // 待ち1000ms
  1. STM32CubeIDEの書き込み手順に従い、生成したDebug/Blink.elfを書き込みます。手順内のHello World用ファイル名をBlinkのファイルに置き換えます。
  2. 書き込みの成功を確認したら、AP03のプログラムスイッチをRun側へ戻し、リセットスイッチを押します。
  3. AP03のLEDが1秒点灯・1秒消灯を繰り返すことを確認します。ビルド成功だけでは、書き込みと動作の確認は完了していません。

点滅しない場合は、電源、書き込んだELFファイル、プログラムスイッチの位置、書き込み後のリセットを順に確認します。接続できない場合はよくある質問を参照してください。