原理简述:
每个按键都接了一个 10K 的上拉电阻,当按键没有按下时,IO 上的电平为高;当按键按下时,IO 上的电平为低。因此,在使用循环检测时为检测低电平,在中断时,检测的是下降沿。
构建底层架构:
程序实现:
使用if(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0) == GPIO_PIN_RESET)即可判断按键是否按下。为了操作便捷,可以使用宏定义(#define)的方式将
HAL_GPIO_ReadPin(GPIOx, GPIO_PIN_x)定义为 Kx 的方式。
#define k1 HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0)
#define k2 HAL_GPIO_R