GPIO的输入检测。
我的板子,PC13接了一个按钮,在按钮两端有消抖电容,用以消除机械触点的抖动。PC13接有落地电阻R11,用途是降低输入阻抗,减少干扰。
-
配置GPIO
将PC13配置为输入,无上拉无下拉,用户标签命名为KEY_IN。
其余的设置使用上一个项目,不用修改。
-
编写代码
main.c的主循环内输入以下代码
while (1)
{
if(HAL_GPIO_ReadPin(GPIOC, KEY_IN_Pin) == GPIO_PIN_SET)
{
HAL_Delay(20); /* 延时消抖 */
HAL_GPIO_TogglePin(GPIOA, LED_R_Pin); /* LED翻转 */
while(HAL_GPIO_ReadPin(GPIOC, KEY_IN_Pin) == GPIO_PIN_SET);/* 松手检测 */
}
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}