メインコンテンツ

STMicroelectronics の STM32 プロセッサ ベースのボードでの Hardware Interrupt ブロックを使用した ISR の作成

この例では、Embedded Coder® Support Package for STMicroelectronics® STM32 Processors Based Boards の生成コードで Hardware Interrupt ブロックを使用して割り込みサービス ルーチン (ISR) を作成する方法を示します。

この例では以下を行うことができます。

  • STM32 プロセッサ ベースのハードウェア ボードでイベントに応答するための ISR を作成する。

  • ISR から NUCLEO-F429ZI ボード上のユーザー ボタンを押すように Hardware Interrupt ブロックを構成する。

はじめに

Embedded Coder Support Package for STMicroelectronics STM32 Processors を使用すると、実行時は Simulink® ブロックを使用して周辺装置にアクセスし、プロセッサの周辺装置については STM32CubeMX ツールを使用して構成できます。

この例では、Hardware Interrupt ブロックをもつ Simulink モデルを構成してコードを生成し、STMicroelectronics NUCLEO-F429ZI ボード上のボタンが押されたときにさまざまなレートで青色 LED を点滅させる方法を学習します。

前提条件

以下のチュートリアルを完了します。

STMicroelectronics の STM32 プロセッサ ベースのボード入門

必要なハードウェア

この例を実行するには、次のハードウェアが必要です。

  • STMicroelectronics NUCLEO-F429ZI ボード

  • マイクロ USB ケーブル

モデル

open_system('stm32_hwi_gettingstarted');

このモデルを使用して、NUCLEO-F429ZI ボード上のボタンが押されたときにさまざまなレートで青色 LED を点滅させることができます。

ユーザー ボタンの論理状態をより速いレートで読み取ることができるため、ユーザー ボタンのステータスの変化を見落とすことはありません。モデルを最適化するために、Hardware Interrupt ブロックを使用して、ユーザー ボタンが押されたときにのみトリガーされる ISR を生成できます。このような合理性により、ユーザー ボタンのステータスのあらゆる変化が通知されます。

LED を点滅させるように Simulink で Hardware Interrupt ブロックを構成する

このタスクでは、モデルのさまざまなレートで青色 LED を点滅させるようにターゲット モデルを構成します。

1. stm32_hwi_gettingstarted ターゲット モデルを開きます。

2. ブロックを構成します。ブロックをダブルクリックして [ブロック パラメーター] ダイアログ ボックスを開きます。

  • ユーザー ボタン (青色のボタン) は GPIOC 端子のピン 13 (PC13) に接続されているため、イベント EXTI 13 をトリガーします。

  • 青色 LED は GPIOB 端子のピン 7 (PB7) に接続されています。

3. 新しい STM32CubeMX プロジェクトを作成するか、既存の STM32CubeMX プロジェクトを参照します。STM32CubeMX プロジェクトを STM32CubeMX ツールで起動します。詳細については、STMicroelectronics の STM32 プロセッサ ベースのボード入門を参照してください。

4. 選択した STM32CubeMX プロジェクトで、ユーザー LED を切り替えるために次のように構成します。

  • PB7 (GPIOB のピン 7) を "GPIO_Output"

  • PC13 ピンを "GPIO_EXTI13" (イベント EXTI 13 を生成し、対応する ISR をトリガー)。

  • GPIO のその他の設定

5. STM32CubeMX プロジェクトで、次の構成を行います。

  • [Project Manager]、[Project] で、[Do not generate the main()] を有効にする。

  • [Project Manager]、[Project] で、[Generate under root] を無効にする。

  • [Project Manager]、[Advanced Settings]、[Driver Selector] で、周辺装置に対して低水準 (LL) ドライバーを選択する。

  • [Project Manager]、[Advanced Settings]、[Generate Functions Calls] で、すべての周辺装置の初期化関数呼び出しについて [Do Not Generate Function Calls] を選択解除する。

  • [Project Manager]、[Advanced Settings]、[Generate Function Calls] で、すべての周辺装置の初期化関数呼び出しについて [Visibility (Static)] を選択解除する。

  • プロジェクトを保存する。

Simulink モデルからコードを生成してハードウェア ボードに読み込む

1. モデルのコードを生成するには、"Ctrl+B" を押すか [ビルド、展開、起動] をクリックします。

2. モデル キャンバスの下部に示されるリンクを使用して診断ビューアーを開き、ビルド プロセスに従います。コードをボードに読み込むと、ハードウェア ボード上で青色 LED が点滅します。これは、コードが実行されていることを示します。

その他の試行

  • 別のピンで構成し、この例を実行します。

  • 別のレートで構成し、動作を分析します。

参考