メイン・コンテンツまでスキップ

10. 物理ボタン

動機

物理ボタンは、アプリケーション開発中にTouchGFX Designerからのトリガとして使用できる外部イベントとして機能したり、単にアプリケーションのバックエンドのイベントとして使用できます。

Note
ボードの立ち上げに物理ボタンが関係しない場合は、このステップをスキップしてください。

目標

このセクションの目標は、後続のTouchGFX HALやアプリケーションの開発で使用できるコードを開発することです。

検証

次の表に、このセクションの検証ポイントを示します。

検証ポイント検証内容
マイクロコントローラが設定されている接続された物理ボタンの状態を読み出せるようにマイクロコントローラのGPIOが設定されている必要があります。
接続されたGPIOを読み出せるGPIOから物理ボタンの状態を読み出すコードが開発されると、それを後続のTouchGFX HALの開発に使用できます。
期待される読出し性能が得られるポーリングは、アプリケーションのレンダリング時間に含まれます。 ポーリングに長時間を要する場合は、別のスレッドに移動するか、割込みに基づく動作に変更する必要があります。

前提条件

  • 物理ボタンは、マイクロコントローラのGPIOに接続する必要があります

作業内容

下図は、物理ボタンの回路図およびマイクロコントローラとの接続の回路図です。

STM32CubeMXで、GPIOポートCのピン13(PC13) を入力に設定し、[System Core]カテゴリの[GPIO]セクションで、プルダウンに設定します。

STM32CubeMXが生成するコードによって、該当するGPIOポートが設定され、次のようになります。

main.c
uint8_t key;
if (HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_13) != GPIO_PIN_RESET)
{
key = 1;
}

期待通りの性能が得られること

TouchGFXアプリケーションと同じスレッドでコードを実行する場合、1ms以内に物理ボタンの状態をポーリングできる必要があります。 速度が不足している場合は、後の段階で、コードを独立したタスクに移動するか、割込みに基づく動作に変更することを検討してください。