STM32G474xx HAL 用户手册
函数
IO 操作函数
UART 导出函数

UART 发送/接收函数。 更多...

函数

HAL_StatusTypeDef HAL_UART_Transmit (UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size, uint32_t Timeout)
 在阻塞模式下发送一定量的数据。
HAL_StatusTypeDef HAL_UART_Receive (UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout)
 在阻塞模式下接收一定量的数据。
HAL_StatusTypeDef HAL_UART_Transmit_IT (UART_HandleTypeDef *huart, const 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, const 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 传输。
HAL_StatusTypeDef HAL_UART_Abort (UART_HandleTypeDef *huart)
 中止进行中的传输(阻塞模式)。
HAL_StatusTypeDef HAL_UART_AbortTransmit (UART_HandleTypeDef *huart)
 中止进行中的发送传输(阻塞模式)。
HAL_StatusTypeDef HAL_UART_AbortReceive (UART_HandleTypeDef *huart)
 中止进行中的接收传输(阻塞模式)。
HAL_StatusTypeDef HAL_UART_Abort_IT (UART_HandleTypeDef *huart)
 中止进行中的传输(中断模式)。
HAL_StatusTypeDef HAL_UART_AbortTransmit_IT (UART_HandleTypeDef *huart)
 中止进行中的发送传输(中断模式)。
HAL_StatusTypeDef HAL_UART_AbortReceive_IT (UART_HandleTypeDef *huart)
 中止进行中的接收传输(中断模式)。
void HAL_UART_IRQHandler (UART_HandleTypeDef *huart)
 处理 UART 中断请求。
__weak void HAL_UART_TxCpltCallback (UART_HandleTypeDef *huart)
 发送传输完成回调。
__weak void HAL_UART_TxHalfCpltCallback (UART_HandleTypeDef *huart)
 发送半传输完成回调。
__weak void HAL_UART_RxCpltCallback (UART_HandleTypeDef *huart)
 接收传输完成回调。
__weak void HAL_UART_RxHalfCpltCallback (UART_HandleTypeDef *huart)
 接收半传输完成回调。
__weak void HAL_UART_ErrorCallback (UART_HandleTypeDef *huart)
 UART 错误回调。
__weak void HAL_UART_AbortCpltCallback (UART_HandleTypeDef *huart)
 UART 中止完成回调。
__weak void HAL_UART_AbortTransmitCpltCallback (UART_HandleTypeDef *huart)
 UART 中止完成回调。
__weak void HAL_UART_AbortReceiveCpltCallback (UART_HandleTypeDef *huart)
 UART 中止接收完成回调。
__weak void HAL_UARTEx_RxEventCallback (UART_HandleTypeDef *huart, uint16_t Size)
 接收事件回调(在使用高级接收服务后调用的 Rx 事件通知)。

详细描述

UART 发送/接收函数。

 ===============================================================================
                      ##### IO 操作函数 #####
 ===============================================================================
    [..]
    本小节提供一组用于管理 UART 异步和半双工数据传输的函数。

    (#) 有两种传输模式:
       (++) 阻塞模式:通信以轮询模式执行。
            所有数据处理的 HAL 状态在传输完成后由同一函数返回。
       (++) 非阻塞模式:通信使用中断或 DMA 执行,这些 API 返回 HAL 状态。
            数据处理的结束将通过专用的 UART IRQ(使用中断模式时)或 DMA IRQ(使用 DMA 模式时)指示。
            HAL_UART_TxCpltCallback()、HAL_UART_RxCpltCallback() 用户回调将分别在发送或接收过程结束时执行。
            当检测到通信错误时,将执行 HAL_UART_ErrorCallback() 用户回调。

    (#) 阻塞模式 API 为:
        (++) HAL_UART_Transmit()
        (++) HAL_UART_Receive()

    (#) 使用中断的非阻塞模式 API 为:
        (++) HAL_UART_Transmit_IT()
        (++) HAL_UART_Receive_IT()
        (++) HAL_UART_IRQHandler()

    (#) 使用 DMA 的非阻塞模式 API 为:
        (++) HAL_UART_Transmit_DMA()
        (++) HAL_UART_Receive_DMA()
        (++) HAL_UART_DMAPause()
        (++) HAL_UART_DMAResume()
        (++) HAL_UART_DMAStop()

    (#) 在非阻塞模式下提供了一组传输完成回调:
        (++) HAL_UART_TxHalfCpltCallback()
        (++) HAL_UART_TxCpltCallback()
        (++) HAL_UART_RxHalfCpltCallback()
        (++) HAL_UART_RxCpltCallback()
        (++) HAL_UART_ErrorCallback()

    (#) 非阻塞模式传输可以使用中止 API 中止:
        (++) HAL_UART_Abort()
        (++) HAL_UART_AbortTransmit()
        (++) HAL_UART_AbortReceive()
        (++) HAL_UART_Abort_IT()
        (++) HAL_UART_AbortTransmit_IT()
        (++) HAL_UART_AbortReceive_IT()

    (#) 对于基于中断的中止服务(HAL_UART_Abortxxx_IT),提供了一组中止完成回调:
        (++) HAL_UART_AbortCpltCallback()
        (++) HAL_UART_AbortTransmitCpltCallback()
        (++) HAL_UART_AbortReceiveCpltCallback()

    (#) 对于增强接收服务的非阻塞模式,提供了一个 Rx 事件接收回调(Rx 事件通知):
        (++) HAL_UARTEx_RxEventCallback()

    (#) 从停止模式唤醒回调:
        (++) HAL_UARTEx_WakeupCallback()

    (#) 在非阻塞模式传输中,可能的错误分为两类。
        错误处理如下:
       (++) 错误被视为可恢复且非阻塞:传输可以继续进行直到结束,但错误严重性需要用户评估:这涉及中断模式接收中的帧错误、奇偶校验错误或噪声错误。
            接收到的字符随后被检索并存储在 Rx 缓冲区中,设置错误代码以允许用户识别错误类型,并执行 HAL_UART_ErrorCallback() 用户回调。
            UART 侧的传输保持进行中。
            如果用户想要中止它,应由用户调用中止服务。
       (++) 错误被视为阻塞:传输无法正常完成并被中止。
            这涉及中断模式接收中的溢出错误和 DMA 模式中的所有错误。
            设置错误代码以允许用户识别错误类型,并执行 HAL_UART_ErrorCallback() 用户回调。

    -@- 在半双工通信中,禁止并行运行发送和接收过程,UART 状态 HAL_UART_STATE_BUSY_TX_RX 无法使用。


函数文档

HAL_StatusTypeDef