STM32F4xx HAL Documentation
Hardware Abstraction Layer for STM32F4 familiy
|
Data transfers functions. More...
Functions | |
HAL_StatusTypeDef | HAL_SAI_Transmit (SAI_HandleTypeDef *hsai, uint8_t *pData, uint16_t Size, uint32_t Timeout) |
Transmit an amount of data in blocking mode. | |
HAL_StatusTypeDef | HAL_SAI_Receive (SAI_HandleTypeDef *hsai, uint8_t *pData, uint16_t Size, uint32_t Timeout) |
Receive an amount of data in blocking mode. | |
HAL_StatusTypeDef | HAL_SAI_Transmit_IT (SAI_HandleTypeDef *hsai, uint8_t *pData, uint16_t Size) |
Transmit an amount of data in non-blocking mode with Interrupt. | |
HAL_StatusTypeDef | HAL_SAI_Receive_IT (SAI_HandleTypeDef *hsai, uint8_t *pData, uint16_t Size) |
Receive an amount of data in non-blocking mode with Interrupt. | |
HAL_StatusTypeDef | HAL_SAI_Transmit_DMA (SAI_HandleTypeDef *hsai, uint8_t *pData, uint16_t Size) |
Transmit an amount of data in non-blocking mode with DMA. | |
HAL_StatusTypeDef | HAL_SAI_Receive_DMA (SAI_HandleTypeDef *hsai, uint8_t *pData, uint16_t Size) |
Receive an amount of data in non-blocking mode with DMA. | |
HAL_StatusTypeDef | HAL_SAI_DMAPause (SAI_HandleTypeDef *hsai) |
Pause the audio stream playing from the Media. | |
HAL_StatusTypeDef | HAL_SAI_DMAResume (SAI_HandleTypeDef *hsai) |
Resume the audio stream playing from the Media. | |
HAL_StatusTypeDef | HAL_SAI_DMAStop (SAI_HandleTypeDef *hsai) |
Stop the audio stream playing from the Media. | |
HAL_StatusTypeDef | HAL_SAI_Abort (SAI_HandleTypeDef *hsai) |
Abort the current transfer and disable the SAI. | |
HAL_StatusTypeDef | HAL_SAI_EnableTxMuteMode (SAI_HandleTypeDef *hsai, uint16_t val) |
Enable the Tx mute mode. | |
HAL_StatusTypeDef | HAL_SAI_DisableTxMuteMode (SAI_HandleTypeDef *hsai) |
Disable the Tx mute mode. | |
HAL_StatusTypeDef | HAL_SAI_EnableRxMuteMode (SAI_HandleTypeDef *hsai, SAIcallback callback, uint16_t counter) |
Enable the Rx mute detection. | |
HAL_StatusTypeDef | HAL_SAI_DisableRxMuteMode (SAI_HandleTypeDef *hsai) |
Disable the Rx mute detection. | |
void | HAL_SAI_IRQHandler (SAI_HandleTypeDef *hsai) |
Handle SAI interrupt request. | |
void | HAL_SAI_TxHalfCpltCallback (SAI_HandleTypeDef *hsai) |
Tx Transfer Half completed callback. | |
void | HAL_SAI_TxCpltCallback (SAI_HandleTypeDef *hsai) |
Tx Transfer completed callback. | |
void | HAL_SAI_RxHalfCpltCallback (SAI_HandleTypeDef *hsai) |
Rx Transfer half completed callback. | |
void | HAL_SAI_RxCpltCallback (SAI_HandleTypeDef *hsai) |
Rx Transfer completed callback. | |
void | HAL_SAI_ErrorCallback (SAI_HandleTypeDef *hsai) |
SAI error callback. | |
Data transfers functions.
============================================================================== ##### IO operation functions ##### ============================================================================== [..] This subsection provides a set of functions allowing to manage the SAI data transfers. (+) There are two modes of transfer: (++) Blocking mode : The communication is performed in the polling mode. The status of all data processing is returned by the same function after finishing transfer. (++) No-Blocking mode : The communication is performed using Interrupts or DMA. These functions return the status of the transfer startup. The end of the data processing will be indicated through the dedicated SAI IRQ when using Interrupt mode or the DMA IRQ when using DMA mode. (+) Blocking mode functions are : (++) HAL_SAI_Transmit() (++) HAL_SAI_Receive() (+) Non Blocking mode functions with Interrupt are : (++) HAL_SAI_Transmit_IT() (++) HAL_SAI_Receive_IT() (+) Non Blocking mode functions with DMA are : (++) HAL_SAI_Transmit_DMA() (++) HAL_SAI_Receive_DMA() (+) A set of Transfer Complete Callbacks are provided in non Blocking mode: (++) HAL_SAI_TxCpltCallback() (++) HAL_SAI_RxCpltCallback() (++) HAL_SAI_ErrorCallback()
HAL_StatusTypeDef HAL_SAI_Transmit | ( | SAI_HandleTypeDef * | hsai, |
uint8_t * | pData, | ||
uint16_t | Size, | ||
uint32_t | Timeout ) |
#include <stm32f4xx_hal_sai.h>
Transmit an amount of data in blocking mode.
hsai | pointer to a SAI_HandleTypeDef structure that contains the configuration information for SAI module. |
pData | Pointer to data buffer |
Size | Amount of data to be sent |
Timeout | Timeout duration |
HAL | status |
Definition at line 875 of file stm32f4xx_hal_sai.c.
References __HAL_LOCK, __HAL_SAI_ENABLE, __HAL_UNLOCK, SAI_InitTypeDef::CompandingMode, SAI_InitTypeDef::DataSize, __SAI_HandleTypeDef::ErrorCode, HAL_BUSY, HAL_ERROR, HAL_GetTick(), HAL_MAX_DELAY, HAL_OK, HAL_SAI_ERROR_NONE, HAL_SAI_ERROR_TIMEOUT, HAL_SAI_STATE_BUSY_TX, HAL_SAI_STATE_READY, __SAI_HandleTypeDef::Init, __SAI_HandleTypeDef::Instance, __SAI_HandleTypeDef::pBuffPtr, SAI_DATASIZE_16, SAI_DATASIZE_8, SAI_Disable(), SAI_FIFOSTATUS_FULL, SAI_FillFifo(), SAI_NOCOMPANDING, __SAI_HandleTypeDef::State, __SAI_HandleTypeDef::XferCount, and __SAI_HandleTypeDef::XferSize.
HAL_StatusTypeDef HAL_SAI_Receive | ( | SAI_HandleTypeDef * | hsai, |
uint8_t * | pData, | ||
uint16_t | Size, | ||
uint32_t | Timeout ) |
#include <stm32f4xx_hal_sai.h>
Receive an amount of data in blocking mode.
hsai | pointer to a SAI_HandleTypeDef structure that contains the configuration information for SAI module. |
pData | Pointer to data buffer |
Size | Amount of data to be received |
Timeout | Timeout duration |
HAL | status |
Definition at line 975 of file stm32f4xx_hal_sai.c.
References __HAL_LOCK, __HAL_SAI_ENABLE, __HAL_UNLOCK, SAI_InitTypeDef::CompandingMode, SAI_InitTypeDef::DataSize, __SAI_HandleTypeDef::ErrorCode, HAL_BUSY, HAL_ERROR, HAL_GetTick(), HAL_MAX_DELAY, HAL_OK, HAL_SAI_ERROR_NONE, HAL_SAI_ERROR_TIMEOUT, HAL_SAI_STATE_BUSY_RX, HAL_SAI_STATE_READY, __SAI_HandleTypeDef::Init, __SAI_HandleTypeDef::Instance, __SAI_HandleTypeDef::pBuffPtr, SAI_DATASIZE_16, SAI_DATASIZE_8, SAI_Disable(), SAI_FIFOSTATUS_EMPTY, SAI_NOCOMPANDING, __SAI_HandleTypeDef::State, __SAI_HandleTypeDef::XferCount, and __SAI_HandleTypeDef::XferSize.
HAL_StatusTypeDef HAL_SAI_Transmit_IT | ( | SAI_HandleTypeDef * | hsai, |
uint8_t * | pData, | ||
uint16_t | Size ) |
#include <stm32f4xx_hal_sai.h>
Transmit an amount of data in non-blocking mode with Interrupt.
hsai | pointer to a SAI_HandleTypeDef structure that contains the configuration information for SAI module. |
pData | Pointer to data buffer |
Size | Amount of data to be sent |
HAL | status |
Definition at line 1072 of file stm32f4xx_hal_sai.c.
References __HAL_LOCK, __HAL_SAI_ENABLE, __HAL_SAI_ENABLE_IT, __HAL_UNLOCK, SAI_InitTypeDef::CompandingMode, SAI_InitTypeDef::DataSize, __SAI_HandleTypeDef::ErrorCode, HAL_BUSY, HAL_ERROR, HAL_OK, HAL_SAI_ERROR_NONE, HAL_SAI_STATE_BUSY_TX, HAL_SAI_STATE_READY, __SAI_HandleTypeDef::Init, __SAI_HandleTypeDef::Instance, __SAI_HandleTypeDef::InterruptServiceRoutine, __SAI_HandleTypeDef::pBuffPtr, SAI_DATASIZE_16, SAI_DATASIZE_8, SAI_FillFifo(), SAI_InterruptFlag(), SAI_MODE_IT, SAI_NOCOMPANDING, SAI_Transmit_IT16Bit(), SAI_Transmit_IT32Bit(), SAI_Transmit_IT8Bit(), __SAI_HandleTypeDef::State, __SAI_HandleTypeDef::XferCount, and __SAI_HandleTypeDef::XferSize.
HAL_StatusTypeDef HAL_SAI_Receive_IT | ( | SAI_HandleTypeDef * | hsai, |
uint8_t * | pData, | ||
uint16_t | Size ) |
#include <stm32f4xx_hal_sai.h>
Receive an amount of data in non-blocking mode with Interrupt.
hsai | pointer to a SAI_HandleTypeDef structure that contains the configuration information for SAI module. |
pData | Pointer to data buffer |
Size | Amount of data to be received |
HAL | status |
Definition at line 1134 of file stm32f4xx_hal_sai.c.
References __HAL_LOCK, __HAL_SAI_ENABLE, __HAL_SAI_ENABLE_IT, __HAL_UNLOCK, SAI_InitTypeDef::CompandingMode, SAI_InitTypeDef::DataSize, __SAI_HandleTypeDef::ErrorCode, HAL_BUSY, HAL_ERROR, HAL_OK, HAL_SAI_ERROR_NONE, HAL_SAI_STATE_BUSY_RX, HAL_SAI_STATE_READY, __SAI_HandleTypeDef::Init, __SAI_HandleTypeDef::Instance, __SAI_HandleTypeDef::InterruptServiceRoutine, __SAI_HandleTypeDef::pBuffPtr, SAI_DATASIZE_16, SAI_DATASIZE_8, SAI_InterruptFlag(), SAI_MODE_IT, SAI_NOCOMPANDING, SAI_Receive_IT16Bit(), SAI_Receive_IT32Bit(), SAI_Receive_IT8Bit(), __SAI_HandleTypeDef::State, __SAI_HandleTypeDef::XferCount, and __SAI_HandleTypeDef::XferSize.
HAL_StatusTypeDef HAL_SAI_Transmit_DMA | ( | SAI_HandleTypeDef * | hsai, |
uint8_t * | pData, | ||
uint16_t | Size ) |
#include <stm32f4xx_hal_sai.h>
Transmit an amount of data in non-blocking mode with DMA.
hsai | pointer to a SAI_HandleTypeDef structure that contains the configuration information for SAI module. |
pData | Pointer to data buffer |
Size | Amount of data to be sent |
HAL | status |
Definition at line 1367 of file stm32f4xx_hal_sai.c.
References __HAL_LOCK, __HAL_SAI_ENABLE, __HAL_SAI_ENABLE_IT, __HAL_UNLOCK, __SAI_HandleTypeDef::ErrorCode, HAL_BUSY, HAL_DMA_Start_IT(), HAL_ERROR, HAL_GetTick(), HAL_OK, HAL_SAI_ERROR_NONE, HAL_SAI_ERROR_TIMEOUT, HAL_SAI_STATE_BUSY_TX, HAL_SAI_STATE_READY, HAL_TIMEOUT, __SAI_HandleTypeDef::hdmatx, __SAI_HandleTypeDef::Instance, __SAI_HandleTypeDef::pBuffPtr, SAI_DMAError(), SAI_DMATxCplt(), SAI_DMATxHalfCplt(), SAI_FIFOSTATUS_EMPTY, SAI_InterruptFlag(), SAI_LONG_TIMEOUT, SAI_MODE_DMA, __SAI_HandleTypeDef::State, __DMA_HandleTypeDef::XferAbortCallback, __SAI_HandleTypeDef::XferCount, __DMA_HandleTypeDef::XferCpltCallback, __DMA_HandleTypeDef::XferErrorCallback, __DMA_HandleTypeDef::XferHalfCpltCallback, and __SAI_HandleTypeDef::XferSize.
HAL_StatusTypeDef HAL_SAI_Receive_DMA | ( | SAI_HandleTypeDef * | hsai, |
uint8_t * | pData, | ||
uint16_t | Size ) |
#include <stm32f4xx_hal_sai.h>
Receive an amount of data in non-blocking mode with DMA.
hsai | pointer to a SAI_HandleTypeDef structure that contains the configuration information for SAI module. |
pData | Pointer to data buffer |
Size | Amount of data to be received |
HAL | status |
Definition at line 1454 of file stm32f4xx_hal_sai.c.
References __HAL_LOCK, __HAL_SAI_ENABLE, __HAL_SAI_ENABLE_IT, __HAL_UNLOCK, __SAI_HandleTypeDef::ErrorCode, HAL_BUSY, HAL_DMA_Start_IT(), HAL_ERROR, HAL_OK, HAL_SAI_ERROR_NONE, HAL_SAI_STATE_BUSY_RX, HAL_SAI_STATE_READY, __SAI_HandleTypeDef::hdmarx, __SAI_HandleTypeDef::Instance, __SAI_HandleTypeDef::pBuffPtr, SAI_DMAError(), SAI_DMARxCplt(), SAI_DMARxHalfCplt(), SAI_InterruptFlag(), SAI_MODE_DMA, __SAI_HandleTypeDef::State, __DMA_HandleTypeDef::XferAbortCallback, __SAI_HandleTypeDef::XferCount, __DMA_HandleTypeDef::XferCpltCallback, __DMA_HandleTypeDef::XferErrorCallback, __DMA_HandleTypeDef::XferHalfCpltCallback, and __SAI_HandleTypeDef::XferSize.
HAL_StatusTypeDef HAL_SAI_DMAPause | ( | SAI_HandleTypeDef * | hsai | ) |
#include <stm32f4xx_hal_sai.h>
Pause the audio stream playing from the Media.
hsai | pointer to a SAI_HandleTypeDef structure that contains the configuration information for SAI module. |
HAL | status |
Definition at line 1192 of file stm32f4xx_hal_sai.c.
References __HAL_LOCK, __HAL_UNLOCK, HAL_OK, and __SAI_HandleTypeDef::Instance.
HAL_StatusTypeDef HAL_SAI_DMAResume | ( | SAI_HandleTypeDef * | hsai | ) |
#include <stm32f4xx_hal_sai.h>
Resume the audio stream playing from the Media.
hsai | pointer to a SAI_HandleTypeDef structure that contains the configuration information for SAI module. |
HAL | status |
Definition at line 1212 of file stm32f4xx_hal_sai.c.
References __HAL_LOCK, __HAL_SAI_ENABLE, __HAL_UNLOCK, HAL_OK, and __SAI_HandleTypeDef::Instance.
HAL_StatusTypeDef HAL_SAI_DMAStop | ( | SAI_HandleTypeDef * | hsai | ) |
#include <stm32f4xx_hal_sai.h>
Stop the audio stream playing from the Media.
hsai | pointer to a SAI_HandleTypeDef structure that contains the configuration information for SAI module. |
HAL | status |
Definition at line 1239 of file stm32f4xx_hal_sai.c.
References __HAL_LOCK, __HAL_UNLOCK, __DMA_HandleTypeDef::ErrorCode, __SAI_HandleTypeDef::ErrorCode, HAL_DMA_Abort(), HAL_DMA_ERROR_NO_XFER, HAL_ERROR, HAL_OK, HAL_SAI_ERROR_DMA, HAL_SAI_STATE_BUSY_RX, HAL_SAI_STATE_BUSY_TX, HAL_SAI_STATE_READY, __SAI_HandleTypeDef::hdmarx, __SAI_HandleTypeDef::hdmatx, __SAI_HandleTypeDef::Instance, SAI_Disable(), and __SAI_HandleTypeDef::State.
HAL_StatusTypeDef HAL_SAI_Abort | ( | SAI_HandleTypeDef * | hsai | ) |
#include <stm32f4xx_hal_sai.h>
Abort the current transfer and disable the SAI.
hsai | pointer to a SAI_HandleTypeDef structure that contains the configuration information for SAI module. |
HAL | status |
Definition at line 1298 of file stm32f4xx_hal_sai.c.
References __HAL_LOCK, __HAL_UNLOCK, __DMA_HandleTypeDef::ErrorCode, __SAI_HandleTypeDef::ErrorCode, HAL_DMA_Abort(), HAL_DMA_ERROR_NO_XFER, HAL_ERROR, HAL_OK, HAL_SAI_ERROR_DMA, HAL_SAI_STATE_BUSY_RX, HAL_SAI_STATE_BUSY_TX, HAL_SAI_STATE_READY, __SAI_HandleTypeDef::hdmarx, __SAI_HandleTypeDef::hdmatx, __SAI_HandleTypeDef::Instance, SAI_Disable(), and __SAI_HandleTypeDef::State.
Referenced by HAL_SAI_IRQHandler().
HAL_StatusTypeDef HAL_SAI_EnableTxMuteMode | ( | SAI_HandleTypeDef * | hsai, |
uint16_t | val ) |
#include <stm32f4xx_hal_sai.h>
Enable the Tx mute mode.
hsai | pointer to a SAI_HandleTypeDef structure that contains the configuration information for SAI module. |
val | value sent during the mute SAI Block Mute Value |
HAL | status |
Definition at line 1522 of file stm32f4xx_hal_sai.c.
References assert_param, HAL_ERROR, HAL_OK, HAL_SAI_STATE_RESET, __SAI_HandleTypeDef::Instance, IS_SAI_BLOCK_MUTE_VALUE, and __SAI_HandleTypeDef::State.
HAL_StatusTypeDef HAL_SAI_DisableTxMuteMode | ( | SAI_HandleTypeDef * | hsai | ) |
#include <stm32f4xx_hal_sai.h>
Disable the Tx mute mode.
hsai | pointer to a SAI_HandleTypeDef structure that contains the configuration information for SAI module. |
HAL | status |
Definition at line 1541 of file stm32f4xx_hal_sai.c.
References HAL_ERROR, HAL_OK, HAL_SAI_STATE_RESET, __SAI_HandleTypeDef::Instance, and __SAI_HandleTypeDef::State.
HAL_StatusTypeDef HAL_SAI_EnableRxMuteMode | ( | SAI_HandleTypeDef * | hsai, |
SAIcallback | callback, | ||
uint16_t | counter ) |
#include <stm32f4xx_hal_sai.h>
Enable the Rx mute detection.
hsai | pointer to a SAI_HandleTypeDef structure that contains the configuration information for SAI module. |
callback | function called when the mute is detected. |
counter | number a data before mute detection max 63. |
HAL | status |
Definition at line 1559 of file stm32f4xx_hal_sai.c.
References __HAL_SAI_ENABLE_IT, assert_param, HAL_ERROR, HAL_OK, HAL_SAI_STATE_RESET, __SAI_HandleTypeDef::Instance, IS_SAI_BLOCK_MUTE_COUNTER, __SAI_HandleTypeDef::mutecallback, SAI_IT_MUTEDET, and __SAI_HandleTypeDef::State.
HAL_StatusTypeDef HAL_SAI_DisableRxMuteMode | ( | SAI_HandleTypeDef * | hsai | ) |
#include <stm32f4xx_hal_sai.h>
Disable the Rx mute detection.
hsai | pointer to a SAI_HandleTypeDef structure that contains the configuration information for SAI module. |
HAL | status |
Definition at line 1582 of file stm32f4xx_hal_sai.c.
References __HAL_SAI_DISABLE_IT, HAL_ERROR, HAL_OK, HAL_SAI_STATE_RESET, __SAI_HandleTypeDef::mutecallback, SAI_IT_MUTEDET, and __SAI_HandleTypeDef::State.
void HAL_SAI_IRQHandler | ( | SAI_HandleTypeDef * | hsai | ) |
#include <stm32f4xx_hal_sai.h>
Handle SAI interrupt request.
hsai | pointer to a SAI_HandleTypeDef structure that contains the configuration information for SAI module. |
None |
Definition at line 1601 of file stm32f4xx_hal_sai.c.
References __HAL_SAI_CLEAR_FLAG, __SAI_HandleTypeDef::ErrorCode, HAL_DMA_Abort_IT(), HAL_SAI_Abort(), HAL_SAI_ERROR_AFSDET, HAL_SAI_ERROR_CNREADY, HAL_SAI_ERROR_LFSDET, HAL_SAI_ERROR_OVR, HAL_SAI_ERROR_UDR, HAL_SAI_ERROR_WCKCFG, HAL_SAI_ErrorCallback(), HAL_SAI_STATE_BUSY_RX, HAL_SAI_STATE_READY, HAL_SAI_STATE_RESET, __SAI_HandleTypeDef::hdmarx, __SAI_HandleTypeDef::hdmatx, __SAI_HandleTypeDef::Instance, __SAI_HandleTypeDef::InterruptServiceRoutine, __SAI_HandleTypeDef::mutecallback, SAI_DMAAbort(), SAI_FLAG_AFSDET, SAI_FLAG_CNRDY, SAI_FLAG_LFSDET, SAI_FLAG_MUTEDET, SAI_FLAG_OVRUDR, SAI_FLAG_WCKCFG, SAI_IT_AFSDET, SAI_IT_CNRDY, SAI_IT_FREQ, SAI_IT_LFSDET, SAI_IT_MUTEDET, SAI_IT_OVRUDR, SAI_IT_WCKCFG, __SAI_HandleTypeDef::State, __DMA_HandleTypeDef::XferAbortCallback, and __SAI_HandleTypeDef::XferCount.
__weak void HAL_SAI_TxHalfCpltCallback | ( | SAI_HandleTypeDef * | hsai | ) |
#include <stm32f4xx_hal_sai.h>
Tx Transfer Half completed callback.
hsai | pointer to a SAI_HandleTypeDef structure that contains the configuration information for SAI module. |
None |
Definition at line 1829 of file stm32f4xx_hal_sai.c.
References UNUSED.
Referenced by HAL_SAI_Init(), and SAI_DMATxHalfCplt().
__weak void HAL_SAI_TxCpltCallback | ( | SAI_HandleTypeDef * | hsai | ) |
#include <stm32f4xx_hal_sai.h>
Tx Transfer completed callback.
hsai | pointer to a SAI_HandleTypeDef structure that contains the configuration information for SAI module. |
None |
Definition at line 1813 of file stm32f4xx_hal_sai.c.
References UNUSED.
Referenced by HAL_SAI_Init(), SAI_DMATxCplt(), SAI_Transmit_IT16Bit(), SAI_Transmit_IT32Bit(), and SAI_Transmit_IT8Bit().
__weak void HAL_SAI_RxHalfCpltCallback | ( | SAI_HandleTypeDef * | hsai | ) |
#include <stm32f4xx_hal_sai.h>
Rx Transfer half completed callback.
hsai | pointer to a SAI_HandleTypeDef structure that contains the configuration information for SAI module. |
None |
Definition at line 1861 of file stm32f4xx_hal_sai.c.
References UNUSED.
Referenced by HAL_SAI_Init(), and SAI_DMARxHalfCplt().
__weak void HAL_SAI_RxCpltCallback | ( | SAI_HandleTypeDef * | hsai | ) |
#include <stm32f4xx_hal_sai.h>
Rx Transfer completed callback.
hsai | pointer to a SAI_HandleTypeDef structure that contains the configuration information for SAI module. |
None |
Definition at line 1845 of file stm32f4xx_hal_sai.c.
References UNUSED.
Referenced by HAL_SAI_Init(), SAI_DMARxCplt(), SAI_Receive_IT16Bit(), SAI_Receive_IT32Bit(), and SAI_Receive_IT8Bit().
__weak void HAL_SAI_ErrorCallback | ( | SAI_HandleTypeDef * | hsai | ) |
#include <stm32f4xx_hal_sai.h>
SAI error callback.
hsai | pointer to a SAI_HandleTypeDef structure that contains the configuration information for SAI module. |
None |
Definition at line 1877 of file stm32f4xx_hal_sai.c.
References UNUSED.
Referenced by HAL_SAI_Init(), HAL_SAI_IRQHandler(), SAI_DMAAbort(), and SAI_DMAError().