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內輪詢按鈕的狀態。 如果輪詢速度不夠快,可在後期將輪詢程式碼調整為獨立工作,或基於中斷讀取按鍵狀態。