一、硬件设计
按键KEY1连接PB6,KEY2连接PC3。
二、软件设计
通过原理图知道按键通过一个上拉电阻接到3.3V,按键没有被按下时,GPIO输入口检测到为高电平,按键被按下时GPIO口检测到为低电平。
接下来配置STM32Cubemx,将GPIO配置为下降沿触发模式,选择Pull-up(上拉),UserLabal填Keyx方便后期维护代码,然后点击生成代码即可。
生成代码后,stm32f1xx_it.c中可以看到对应的中断处理代码,HAL_GPIO_EXTI_IRQHandler()函数中调用了一个中断回调函数HAL_GPIO_EXTI_Callback,通过其中的注释可知道,我们可以通过在自己的用户文件中重新定义此函数,来处理我们的中断触发事件。
void EXTI3_IRQHandler(void)
{
/* USER CODE BEGIN EXTI3_IRQn 0 */
/* USER CODE END EXTI3_IRQn 0 */
HAL_GPIO_EXTI_IRQHandler(Key2_Pin);
/* USER CODE BEGIN EXTI3_IRQn 1 */
/* USER CODE END EXTI3_IRQn 1 */
}
/**
* @brief EXTI line detection callbacks.
* @param GPIO_Pin: Specifies the pins connected EXTI line
*