void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) {
//添加回调后的程序逻辑 if (htim->Instance == htim2.Instance)//判断是否定时器2 { } } void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) {
//添加回调后的程序逻辑if(huart->Instance == USART1)//判断是否串口1 { } }
中断回调函数是在某个中断发生完成之后调用的,在用Cubemx生成的代码中,其实已经有生成中断回调函数了的,不过那个我们可以不用管,自己在项目里重写中断回调函数以及程序逻辑即可。
从上图我们可以看到,自动生成的代码中,中断回调函数都有一个__weak 关键字,加上了__weak 修饰符的函数,用户可以在用户文件中重新定义一个同名函数,最终编译器编译的时候,会选择用户定义的函数,如果用户没有重新定义这个函数,那么编译器就会执行__weak 声明的函数,并且编译器不会报错。所以我们可以在别的地方定义一个相同名字的函数,而不必也尽量不要修改之前的函数。