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 が点滅します。これは、コードが実行されていることを示します。
その他の試行
別のピンで構成し、この例を実行します。
別のレートで構成し、動作を分析します。