串口发送/接收函数:
 
  HAL_UART_Transmit();  
  串口发送数据,使用超时管理机制  
 
 
  
  HAL_UART_Receive();  
  串口接收数据,使用超时管理机制  
 
 
  
  HAL_UART_Transmit_IT();  
  串口中断模式发送   
 
 
  
  HAL_UART_Receive_IT();  
  串口中断模式接收  
 
 
  
 HAL_UART_Transmit(): 该函数用于在阻塞模式下通过UART发送数据。在传输完成之前,该函数将一直等待。
 
  
 
   HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout); 
  
   
 
 
  
   作用:以阻塞的方式发送指定字节的数据  
  
 
   
           形参 1  
   : 
   UART_HandleTypeDef  
   结构体类型指针变量  
  
 
   
           形参 2 
   :指向要发送的数据地址  
  
 
   
           形参 3 
   :要发送的数据大小,以字节为单位  
  
 
   
           形参 4 
   :设置的超时时间,以 
   ms 
   单位 
  
 
   
  HAL_UART_Transmit_IT(): 该函数用于在中断模式下通过UART发送数据。它启动传输并立即返回,允许微控制器在传输进行时执行其他任务。
 
   
  Timeout的作用?
在HAL库的串口函数中,Timeout 参数用于设置超时时间。具体来说,超时值是在函数开始执行时开始计时的,如果在指定的时间内未完成操作(比如发送或接收数据),函数将返回一个错误代码,允许程序采取适当的措施。
例如,如果你在调用 HAL_UART_Transmit() 函数时将 Timeout 设置为1000毫秒,那么该函数将等待最多1000毫秒,如果在这段时间内无法完成串口发送操作,函数将返回错误。同样,对于 HAL_UART_Receive() 函数,如果在指定的时间内未接收到足够的数据,也会触发超时错误。
串口中断回调函数:
 
 HAL_UART_IRQHandler(UART_HandleTypeDef *huart);  
 // 
 串口中断处理函数  
 
 
 HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart);  
 // 
 发送中断回调函数  
 
 
 HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart);  
 // 
 接收中断回调函数  
 
 
状态标记变量:
 
  USART_RX_STA 
 
 
 
 从 
 0 
 开始,串口中断接收到一个数据(一个字节)就自增 
 1 
 。当数据读取全部 
 OK 
 时候(回车和换行  
 
 
 符号来的时候),那么 
  USART_RX_STA 
 的最高位置 
 1 
 ,表示串口数据接收全部完毕了,然后 
 main  
 
 
 函数里面可以处理数据了。 
 
 
 
串口接收中断流程 :
 



















