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

数据传输函数。 更多...

函数

HAL_StatusTypeDef HAL_SPI_Transmit (SPI_HandleTypeDef *hspi, const uint8_t *pData, uint16_t Size, uint32_t Timeout)
 以阻塞模式发送一定数量的数据。
HAL_StatusTypeDef HAL_SPI_Receive (SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size, uint32_t Timeout)
 以阻塞模式接收一定数量的数据。
HAL_StatusTypeDef HAL_SPI_TransmitReceive (SPI_HandleTypeDef *hspi, const uint8_t *pTxData, uint8_t *pRxData, uint16_t Size, uint32_t Timeout)
 以阻塞模式发送和接收一定数量的数据。
HAL_StatusTypeDef HAL_SPI_Transmit_IT (SPI_HandleTypeDef *hspi, const uint8_t *pData, uint16_t Size)
 以非阻塞模式(中断方式)发送一定数量的数据。
HAL_StatusTypeDef HAL_SPI_Receive_IT (SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size)
 以非阻塞模式(中断方式)接收一定数量的数据。
HAL_StatusTypeDef HAL_SPI_TransmitReceive_IT (SPI_HandleTypeDef *hspi, const uint8_t *pTxData, uint8_t *pRxData, uint16_t Size)
 以非阻塞模式(中断方式)发送和接收一定数量的数据。
HAL_StatusTypeDef HAL_SPI_Transmit_DMA (SPI_HandleTypeDef *hspi, const uint8_t *pData, uint16_t Size)
 以非阻塞模式(DMA方式)发送一定数量的数据。
HAL_StatusTypeDef HAL_SPI_Receive_DMA (SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size)
 以非阻塞模式(DMA方式)接收一定数量的数据。
HAL_StatusTypeDef HAL_SPI_TransmitReceive_DMA (SPI_HandleTypeDef *hspi, const uint8_t *pTxData, uint8_t *pRxData, uint16_t Size)
 以非阻塞模式(DMA方式)发送和接收一定数量的数据。
HAL_StatusTypeDef HAL_SPI_Abort (SPI_HandleTypeDef *hspi)
 中止正在进行的传输(阻塞模式)。
HAL_StatusTypeDef HAL_SPI_Abort_IT (SPI_HandleTypeDef *hspi)
 中止正在进行的传输(中断模式)。
HAL_StatusTypeDef HAL_SPI_DMAPause (SPI_HandleTypeDef *hspi)
 暂停DMA传输。
HAL_StatusTypeDef HAL_SPI_DMAResume (SPI_HandleTypeDef *hspi)
 恢复DMA传输。
HAL_StatusTypeDef HAL_SPI_DMAStop (SPI_HandleTypeDef *hspi)
 停止DMA传输。
void HAL_SPI_IRQHandler (SPI_HandleTypeDef *hspi)
 处理SPI中断请求。
__weak void HAL_SPI_TxCpltCallback (SPI_HandleTypeDef *hspi)
 发送传输完成回调函数。
__weak void HAL_SPI_RxCpltCallback (SPI_HandleTypeDef *hspi)
 接收传输完成回调函数。
__weak void HAL_SPI_TxRxCpltCallback (SPI_HandleTypeDef *hspi)
 发送和接收传输完成回调函数。
__weak void HAL_SPI_TxHalfCpltCallback (SPI_HandleTypeDef *hspi)
 发送半传输完成回调函数。
__weak void HAL_SPI_RxHalfCpltCallback (SPI_HandleTypeDef *hspi)
 接收半传输完成回调函数。
__weak void HAL_SPI_TxRxHalfCpltCallback (SPI_HandleTypeDef *hspi)
 发送和接收半传输回调函数。
__weak void HAL_SPI_ErrorCallback (SPI_HandleTypeDef *hspi)
 SPI错误回调函数。
__weak void HAL_SPI_AbortCpltCallback (SPI_HandleTypeDef *hspi)
 SPI中止完成回调函数。

详细说明

数据传输函数。

  ==============================================================================
                      ##### IO操作函数 #####
 ===============================================================================
 [..]
    本节提供了一组用于管理SPI数据传输的函数。

    [..] SPI支持主模式和从模式:

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

    (#) 为这两种传输模式(阻塞模式或使用中断或DMA的非阻塞模式)提供的API
        适用于1线(单工)和2线(全双工)模式。


函数文档

HAL_StatusTypeDef HAL_SPI_Abort ( SPI_HandleTypeDef hspi)

中止正在进行的传输(阻塞模式)。

参数:
hspiSPI句柄。
注意:
此过程可用于中止以中断或DMA模式启动的任何正在进行的传输(发送和接收)。此过程执行以下操作:
  • 禁用SPI中断(取决于传输方向)
  • 禁用外设寄存器中的DMA传输(如果已启用)
  • 通过调用HAL_DMA_Abort中止DMA传输(如果是DMA模式下的传输)
  • 将句柄状态设置为READY
此过程以阻塞模式执行:退出函数时,中止被视为已完成。
返回值:
HAL状态

定义于文件stm32g4xx_hal_spi.c2347行。

参考文献 __HAL_SPI_CLEAR_FREFLAG, __HAL_SPI_CLEAR_OVRFLAG, __HAL_SPI_DISABLE, __SPI_HandleTypeDef::ErrorCode, HAL_DMA_Abort(), HAL_GetTick(), HAL_SPI_ERROR_ABORT, HAL_SPI_ERROR_NONE, HAL_SPI_STATE_ABORT, HAL_SPI_STATE_READY, __SPI_HandleTypeDef::hdmarx, __SPI_HandleTypeDef::hdmatx, __SPI_HandleTypeDef::Instance, __SPI_HandleTypeDef::RxISR, __SPI_HandleTypeDef::RxXferCount, SPI_AbortRx_ISR(), SPI_AbortTx_ISR(), SPI_DEFAULT_TIMEOUT, SPI_EndRxTxTransaction(), SPI_FLAG_BSY, SPI_FLAG_FRLVL, SPI_FRLVL_EMPTY, SPI_WaitFifoStateUntilTimeout(), SPI_WaitFlagStateUntilTimeout(), __SPI_HandleTypeDef::State, __SPI_HandleTypeDef::TxISR, __SPI_HandleTypeDef::TxXferCount, 和 __DMA_HandleTypeDef::XferAbortCallback.

HAL_StatusTypeDef HAL_SPI_Abort_IT ( SPI_HandleTypeDef hspi)

中止正在进行的传输(中断模式)。

参数: