中断常用于实时数据采集和处理,例如 UART 通信和定时器触发任务。
1. UART 数据接收中断
通过 UART 接收中断处理实时数据流:
c
复制代码
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) {
if (huart->Instance == USART1) {
ProcessData(RxBuffer); // 处理接收数据
HAL_UART_Receive_IT(&huart1, RxBuffer, BUFFER_SIZE); // 重启接收中断
}
}
2. 定时器中断触发数据采集
定时器中断实现周期性采集:
c
复制代码
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) {
if (htim->Instance == TIM2) {
StartDataAcquisition(); // 定时采集数据
}
}
|