跳轉到主要內容

10. 按鈕

動機

按鈕可作為外部事件,在應用程式開發期間用作TouchGFX Designer的觸發信號,也可以簡單地用作應用程式的後端事件。

Note
如果您的開發板無按鈕,請跳過此步。

目標

本節的目標是開發可用於後續TouchGFX HAL和/或相關應用開發中的程式碼。

驗證

以下是本節的驗證點:

驗證點基本原理
設定MCU必須配置MCU的 GPIO,以讀取按鈕狀態。
可讀取已連線的GPIO一旦開發了用於從GPIO讀取按鈕狀態的程式碼,就可以在隨後的TouchGFX HAL開發中使用該程式碼。
讀取操作按預期進行輪詢是應用程式渲染算圖時間的一部分。 如果輪詢時間太長,則應將其移至其他線程,或產生中斷。

先決條件

  • 按鍵必須連接到MCU的GPIO

執行

下圖顯示了按鈕的電路圖及與MCU的連線

在STM32CubeMX GPIO port C中,引腳PC13可設定為輸入,也可以在系統核心類別的GPIO部分,將其配置為下拉。

STM32CubeMX產生的程式碼會設定適當的GPIO port:

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

性能符合預期

如果按鍵輪詢程式碼與TouchGFX應用程式在相同的執行緒中執行,應當能在1ms內輪詢按鈕的狀態。 如果輪詢速度不夠快,可在後期將輪詢程式碼調整為獨立工作,或基於中斷讀取按鍵狀態。