前段时间在项目的HAL库串口配置区耗费了很长时间(其实我是为了研究hal库对于stm32串口内部函数的执行过程以及对于重写回调函数和信号量的执行效率)
HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout);//发送数据,阻塞发送Timeout为溢出时间
HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout);//接收数据,阻塞接收Timeout为溢出时间
HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);//发送中断
HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);//接收中断
HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);//串口DMA发送
HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);//串口DMA接收
HAL_StatusTypeDef HAL_UART_DMAPause(UART_HandleTypeDef *huart);//串口DMA暂停
HAL_StatusTypeDef HAL_UART_DMAResume(UART_HandleTypeDef *huart);//串口DMA恢复
HAL_StatusTypeDef HAL_UART_DMAStop(UART_HandleTypeDef *huart);//串口DMA停止
回调函数自己按照官方的写就可以了