跳转到主要内容

10. 按钮

动机

按钮可作为外部事件,在应用程序开发期间用作TouchGFX Designer的触发信号,也可以简单地用作应用程序的后端事件。

Note
如果您的开发板无按钮,请跳过此步。

目标

本节的目标是开发可用于后续TouchGFX HAL和/或相关应用开发中的代码。

验证

以下是本节的验证点:

验证点基本原理
配置MCU必须配置MCU GPIO,以读取按钮状态。
可读取连接的GPIO一旦开发了用于从GPIO读取按钮状态的代码,就可以在随后的TouchGFX HAL开发中使用该代码。
读取操作按预期进行轮询是应用程序渲染时间的一部分。 如果轮询时间太长,则应将其移至其他线程,或基于中断读取按键状态。

先决条件

  • 按钮必须连接到MCU的GPIO

执行

下图显示了按钮的原理图及与MCU的连接

在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应用程序在相同的线程中执行,可以在1 ms内轮询按钮的状态。 如果轮询速度不够快,可用考虑在后期将轮询代码调整为独立任务,或基于中断读取按键状态。