STM32CubeIDEを使ってみよう STM32H745 DualCore編 の2回目として割込みを使ってみましょう。
普通の1コアのSTM32の場合は、こちらをご覧ください。
STM32CubeIDEを使ってみよう How To STM32CubeIDE 日本語版 (7) 割り込みを使ってみよう
プロジェクトをコピーする
まずは、最初に作ったプロジェクトをコピーします。
Ctrl+C⇒Ctrl+V で コピー&ペースト をします。
プロジェクト名を入力して Copy をクリックします。
Pin&Configuration
コピーしたままではプロジェクトの Pin&Configuration を開く事が出来ません。
iocファイル の名称を プロジェクト名 と同じものに変更します。
開く事が出来ました。
GPIO設定
今回は スイッチB1 を割込みで使用します。
GPIO_Input を GPIO_EXIT13 に変更します。
GPIO→Pin Context Assignement を ARM Coetex M7 にします。
GPIO mode を設定します。
今回は、External Interrupt Mode with Falling edge trigger detection にしました。
User Label を今回は B1 としました。
NVIC設定
次に割込みの NVIC の設定をします。
NVIC⇒Exit line[15:10]interrupts のチェックを入れます。
Exit line[9:5]interrupts をチェックできない事を確認してください。
プログラムの生成
DeviceConfiguration Tool Code Generation をクリックしてプログラムを生成します。
作ったプログラムは動作しないように // を追加します。
/* USER CODE BEGIN 4 */ にコードを追加します。
/* 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_13 を B1_Pin とする事も可能です。
これは、 User Label において B1 と設定したためです。
stm32h7xx_it.c の該当箇所を見る事で設定されている名称を確認することが可能です。
コンパイル
それではコンパイルしましょう。
コンパイルプログラムの確認が出ますので、今回は H745-2_CM.elf を選択します。
H745-2 であることを確認し、OKをクリックします。
確認画面が出たらOKをクリックしていきます。
問題なく、コンパイルされると、スイッチを押す事でLEDが点灯、消灯を繰り返すようになると思います。
以上で、スイッチにより割込みを使う事が出来るようになりました。