CubeMX生成的中断函数HAL_UART_IRQHandler(*huart1)如何使用。

串口发送/接收函数

HAL_UART_Transmit();串口发送数据,使用超时管理机制 
HAL_UART_Receive();串口接收数据,使用超时管理机制
HAL_UART_Transmit_IT();串口中断模式发送  
HAL_UART_Receive_IT();串口中断模式接收
HAL_UART_Transmit_DMA();串口DMA模式发送
HAL_UART_Transmit_DMA();串口DMA模式接收

串口中断函数
HAL_UART_IRQHandler(UART_HandleTypeDef *huart);  //串口中断处理函数
HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart);  //串口发送中断回调函数
HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart);  //串口发送一半中断回调函数
HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart);  //串口接收中断回调函数
HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart);//串口接收一半回调函数
HAL_UART_ErrorCallback();串口接收错误函数

串口中断处理函数HAL_UART_IRQHandler()

HAL_UART_IRQHandler(UART_HandleTypeDef *huart);  
功能:对接收到的数据进行判断和处理  判断是发送中断还是接收中断,然后进行数据的发送和接收,在中断服务函数中使用

1.如果接收数据,则会进行接收中断处理函数

 /* UART in mode Receiver —————————————————*/
  if((tmp_flag != RESET) && (tmp_it_source != RESET))
  { 
    UART_Receive_IT(huart);
  }
2.如果发送数据,则会进行发送中断处理函数

  /* UART in mode Transmitter ————————————————*/
  if (((isrflags & USART_SR_TXE) != RESET) && ((cr1its & USART_CR1_TXEIE) != RESET))
  {
    UART_Transmit_IT(huart);
    return;

3.在其地方发送或接收数据就会调用下面这个函数,中断函数不一定非要放在这里。

 

物联沃分享整理
物联沃-IOTWORD物联网 » CubeMX生成的中断函数HAL_UART_IRQHandler(*huart1)如何使用。

发表评论