|
发表于 2020-4-24 13:18:37
|
显示全部楼层
void USART1_IRQHandler(void)
{
/* USER CODE BEGIN USART1_IRQn 0 */
if(__HAL_UART_GET_FLAG(&huart1,UART_FLAG_IDLE)!=RESET)//查询空闲中断标志位是否置位
{
hasReceivedLength = __HAL_DMA_GET_COUNTER(&hdma_usart1_rx);//获取DMA缓冲器中还有多少字节是空的(还没有接收到数据的位置)
__HAL_UART_CLEAR_FLAG(&huart1,UART_CLEAR_IDLEF);//清除空闲中断标志位
HAL_UART_DMAStop(&huart1); //停止DMA接收
HAL_UART_RxCpltCallback(&huart1);//回调串口接收中断
}
/* USER CODE END USART1_IRQn 0 */
HAL_UART_IRQHandler(&huart1);
/* USER CODE BEGIN USART1_IRQn 1 */
/* USER CODE END USART1_IRQn 1 */
}
|
|