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