一、中断服务函数和中断程序的概念:
HAL_UART_Receive_IT
:用于启动接收中断的服务函数
HAL_UART_IRQHandler
:用于处理接收完成中断的中断服务函数。
USART1_IRQHandler:是中断程序(在中断向量表中,我的stm32f103c8t6芯片在startup_stm32f103xb.s文件中可以找到),也称为 中断处理函数。它是当 USART1 硬件发生中断时,处理该中断的函数。
二、中断流程顺序:
一、首先,要产生中断,要服务函数(HAL_UART_Receive_IT
)去启用。
二、然后这个中断会调用中断处理函数(HAL_UART_IRQHandler
)。
三、而中断处理函数里面要调用中断服务函数,这是因为每一次中断都要由中断服务函数(HAL_UART_IRQHandler
)去处理。
三、在标准库与HAL的区别
从上面我们知道,在中断后,会进入中断服务函数,而中断服务函数里面会执行中断处理函数。而这个中断处理函数在标准库和HAL库中是不同的。
HAL库中会有自己封装的中断处理函数,这里面会自己判断一下中断标志位。
而在标准库中,没有封装的中断处理函数,需要在中断服务函数中自己写(包括判断标准位,以及调用回调函数)