1HAL中中断结构
在stm32f1XX_it.c中可以看到生成的中断函数
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_3);
选中函数Ctrl+F 可调用出搜索框
搜索范围为整个项目
再点击Find Next 检索
可以找到可以找到如下函数
void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin)
{
/* EXTI line interrupt detected */
if (__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != 0x00u)
{
__HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);//清除中断标志
HAL_GPIO_EXTI_Callback(GPIO_Pin);//调用中断后的程序//用户自己编写//函数格式不变
}
}
/**
* @brief EXTI line detection callbacks.
* @param GPIO_Pin: Specifies the pins connected EXTI line
* @retval None
*/
__weak void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)//弱函数
//用户复制函数名格式在主函数文件中自行编写
//void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
/* Prevent unused argument(s) compilation warning */
UNUSED(GPIO_Pin);
/* NOTE: This function Should not be modified, when the callback is needed,
the HAL_GPIO_EXTI_Callback could be implemented in the user file
*/
}
复制此函数在主函数文件 中自行编写不可以在main函数里编写
格式
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if(GPIO_Pin == GPIO_PIN_0)
{
// 这里处理GPIO_PIN_0的中断
}
else if(GPIO_Pin == GPIO_PIN_1)
{
// 这里处理GPIO_PIN_1的中断
}
// ... 可以添加更多GPIO引脚的处理
}
//要直接复制的话把下面的删除
void main(void){
}
uint16_t GPIO_Pin可在中断文件中复制