描述:
GPIO输入检测函数
HAL_GPIO_ReadPin(GPIOx, GPIO_Pin);
- GPIOx: GPIO端口,GPIOA~GPIOH
- GPIO_Pin: 该端口对应的Pin脚数
示例:
根据使用的外设,关闭未使用外设的初始化
/* Initialize all configured peripherals */ MX_GPIO_Init(); //开启GPIO初始化函数 // MX_I2C1_Init(); // MX_USART1_UART_Init(); // MX_USART2_UART_Init(); // MX_USB_DEVICE_Init(); // MX_ADC_Init(); // MX_TIM2_Init(); // MX_SPI1_Init();
编辑主程序,检测按键对应引脚,当按下一次,LED变一次状态。KEY按键对应IO是下拉输入的,当按键按下时电平为高,所以判断按键对应IO为SET时为按下状态。
/* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { if(HAL_GPIO_ReadPin(KEY_GPIO_Port, KEY_Pin) == SET) //按下按键 { HAL_Delay(20); //按键延时消抖 if(HAL_GPIO_ReadPin(KEY_GPIO_Port, KEY_Pin) == SET) //按键仍在按下状态 { HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin); //翻转IO while(HAL_GPIO_ReadPin(KEY_GPIO_Port, KEY_Pin) == SET) //等待松开按键 { } } } /* USER CODE END WHILE */ ? /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */
以上示例针对eefrog的STM32F042G模块,根据STM32cubeMX综合配置基础上设计,不保证在其它模块上有同样效果。