1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

STM32CubeIDEを使ってみよう STM32H745 DualCore編(2)割り込みを使ってみよう

Posted at

STM32CubeIDEを使ってみよう STM32H745 DualCore編 の2回目として割込みを使ってみましょう。

普通の1コアのSTM32の場合は、こちらをご覧ください。
STM32CubeIDEを使ってみよう How To STM32CubeIDE 日本語版 (7)  割り込みを使ってみよう

プロジェクトをコピーする

まずは、最初に作ったプロジェクトをコピーします。
Ctrl+C⇒Ctrl+Vコピー&ペースト をします。
プロジェクト名を入力して Copy をクリックします。
image.png

Pin&Configuration

コピーしたままではプロジェクトの Pin&Configuration を開く事が出来ません。
iocファイル の名称を プロジェクト名 と同じものに変更します。
image.png
開く事が出来ました。
image.png

GPIO設定

今回は スイッチB1 を割込みで使用します。
GPIO_InputGPIO_EXIT13 に変更します。
image.png
GPIO→Pin Context AssignementARM Coetex M7 にします。
image.png
GPIO mode を設定します。
今回は、External Interrupt Mode with Falling edge trigger detection にしました。
image.png
User Label を今回は B1 としました。
image.png

NVIC設定

次に割込みの NVIC の設定をします。
NVIC⇒Exit line[15:10]interrupts のチェックを入れます。
image.png
Exit line[9:5]interrupts をチェックできない事を確認してください。

プログラムの生成

DeviceConfiguration Tool Code Generation をクリックしてプログラムを生成します。
5-6-10.png
作ったプログラムは動作しないように // を追加します。
image.png
/* USER CODE BEGIN 4 */ にコードを追加します。

image.png

/* USER CODE BEGIN 4 */
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
    if(GPIO_Pin == GPIO_PIN_13){
        HAL_GPIO_TogglePin(LD1_GPIO_Port, LD1_Pin);
    }
}

/* USER CODE END 4 */

GPIO_PIN_13B1_Pin とする事も可能です。
これは、 User Label において B1 と設定したためです。
image.png
stm32h7xx_it.c の該当箇所を見る事で設定されている名称を確認することが可能です。
image.png

コンパイル

それではコンパイルしましょう。
コンパイルプログラムの確認が出ますので、今回は H745-2_CM.elf を選択します。
image.png
H745-2 であることを確認し、OKをクリックします。
image.png
確認画面が出たらOKをクリックしていきます。
image.png
image.png
問題なく、コンパイルされると、スイッチを押す事でLEDが点灯、消灯を繰り返すようになると思います。
以上で、スイッチにより割込みを使う事が出来るようになりました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?