|
STM32G474xx HAL用户手册
|
USART发送和接收函数。更多...
函数 | |
| HAL_StatusTypeDef | HAL_USART_Transmit (USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16_t Size, uint32_t Timeout) |
| 以阻塞模式简单发送数据。 | |
| HAL_StatusTypeDef | HAL_USART_Receive (USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size, uint32_t Timeout) |
| 以阻塞模式接收数据。 | |
| HAL_StatusTypeDef | HAL_USART_TransmitReceive (USART_HandleTypeDef *husart, const uint8_t *pTxData, uint8_t *pRxData, uint16_t Size, uint32_t Timeout) |
| 以阻塞模式全双工发送和接收数据。 | |
| HAL_StatusTypeDef | HAL_USART_Transmit_IT (USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16_t Size) |
| 以中断模式发送数据。 | |
| HAL_StatusTypeDef | HAL_USART_Receive_IT (USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size) |
| 以中断模式接收数据。 | |
| HAL_StatusTypeDef | HAL_USART_TransmitReceive_IT (USART_HandleTypeDef *husart, const uint8_t *pTxData, uint8_t *pRxData, uint16_t Size) |
| 以中断模式全双工发送和接收数据。 | |
| HAL_StatusTypeDef | HAL_USART_Transmit_DMA (USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16_t Size) |
| 以DMA模式发送数据。 | |
| HAL_StatusTypeDef | HAL_USART_Receive_DMA (USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size) |
| 以DMA模式接收数据。 | |
| HAL_StatusTypeDef | HAL_USART_TransmitReceive_DMA (USART_HandleTypeDef *husart, const uint8_t *pTxData, uint8_t *pRxData, uint16_t Size) |
| 以非阻塞模式全双工发送和接收数据。 | |
| HAL_StatusTypeDef | HAL_USART_DMAPause (USART_HandleTypeDef *husart) |
| 暂停DMA传输。 | |
| HAL_StatusTypeDef | HAL_USART_DMAResume (USART_HandleTypeDef *husart) |
| 恢复DMA传输。 | |
| HAL_StatusTypeDef | HAL_USART_DMAStop (USART_HandleTypeDef *husart) |
| 停止DMA传输。 | |
| HAL_StatusTypeDef | HAL_USART_Abort (USART_HandleTypeDef *husart) |
| 中止正在进行的传输(阻塞模式)。 | |
| HAL_StatusTypeDef | HAL_USART_Abort_IT (USART_HandleTypeDef *husart) |
| 中止正在进行的传输(中断模式)。 | |
| void | HAL_USART_IRQHandler (USART_HandleTypeDef *husart) |
| 处理USART中断请求。 | |
| __weak void | HAL_USART_TxCpltCallback (USART_HandleTypeDef *husart) |
| Tx传输完成回调。 | |
| __weak void | HAL_USART_TxHalfCpltCallback (USART_HandleTypeDef *husart) |
| Tx半传输完成回调。 | |
| __weak void | HAL_USART_RxCpltCallback (USART_HandleTypeDef *husart) |
| Rx传输完成回调。 | |
| __weak void | HAL_USART_RxHalfCpltCallback (USART_HandleTypeDef *husart) |
| Rx半传输完成回调。 | |
| __weak void | HAL_USART_TxRxCpltCallback (USART_HandleTypeDef *husart) |
| 用于非阻塞过程的Tx/Rx传输完成回调。 | |
| __weak void | HAL_USART_ErrorCallback (USART_HandleTypeDef *husart) |
| USART错误回调。 | |
| __weak void | HAL_USART_AbortCpltCallback (USART_HandleTypeDef *husart) |
| USART中止完成回调。 | |
USART发送和接收函数。
===============================================================================
##### IO操作函数 #####
===============================================================================
[..] 本节提供了一组用于管理USART同步SPI数据传输的函数。
[..] USART同步SPI支持主模式和从模式(SCLK作为输出或输入)。
[..]
(#) 有两种传输模式:
(++) 阻塞模式:通信以轮询模式执行。
所有数据处理的HAL状态在传输完成后由同一函数返回。
(++) 非阻塞模式:通信使用中断
或DMA执行,这些API返回HAL状态。
数据处理的完成将通过
使用中断模式时的专用USART IRQ或使用
DMA模式时的DMA IRQ来指示。
HAL_USART_TxCpltCallback()、HAL_USART_RxCpltCallback()和HAL_USART_TxRxCpltCallback()用户回调
将分别在发送或接收过程结束时执行
当检测到通信错误时,将执行HAL_USART_ErrorCallback()用户回调
(#) 阻塞模式API:
(++) HAL_USART_Transmit() 简单模式
(++) HAL_USART_Receive() 全双工仅接收
(++) HAL_USART_TransmitReceive() 全双工模式
(#) 带中断的非阻塞模式API:
(++) HAL_USART_Transmit_IT() 简单模式
(++) HAL_USART_Receive_IT() 全双工仅接收
(++) HAL_USART_TransmitReceive_IT() 全双工模式
(++) HAL_USART_IRQHandler()
(#) 带DMA的非阻塞模式API:
(++) HAL_USART_Transmit_DMA() 简单模式
(++) HAL_USART_Receive_DMA() 全双工仅接收
(++) HAL_USART_TransmitReceive_DMA() 全双工模式
(++) HAL_USART_DMAPause()
(++) HAL_USART_DMAResume()
(++) HAL_USART_DMAStop()
(#) 非阻塞模式提供了一组传输完成回调:
(++) HAL_USART_TxCpltCallback()
(++) HAL_USART_RxCpltCallback()
(++) HAL_USART_TxHalfCpltCallback()
(++) HAL_USART_RxHalfCpltCallback()
(++) HAL_USART_ErrorCallback()
(++) HAL_USART_TxRxCpltCallback()
(#) 非阻塞模式传输可以使用中止API中止:
(++) HAL_USART_Abort()
(++) HAL_USART_Abort_IT()
(#) 对于基于中断的中止服务(HAL_USART_Abort_IT),提供了中止完成回调:
(++) HAL_USART_AbortCpltCallback()
(#) 在非阻塞模式传输中,可能的错误分为2类。
错误处理如下:
(++) 错误被视为可恢复和非阻塞:传输可以进行到结束,但错误严重程度
应由用户评估:这涉及帧错误、
中断模式接收中的奇偶校验错误或噪声错误。
然后检索接收到的字符并存储在Rx缓冲区中,设置错误代码以允许用户识别
错误类型,并执行HAL_USART_ErrorCallback()用户回调。
USART侧的传输继续进行。
如果用户要中止它,应由用户调用中止服务。
(++) 错误被视为阻塞:传输无法正确完成并被中止。
这涉及中断模式接收中的溢出错误和DMA模式中的所有错误。
设置错误代码以允许用户识别错误类型,
并执行HAL_USART_ErrorCallback()用户回调。
| HAL_StatusTypeDef HAL_USART_Abort | ( | USART_HandleTypeDef * | husart | ) |
中止正在进行的传输(阻塞模式)。
| husart | USART句柄。 |
| HAL | 状态 |
定义于文件stm32g4xx_hal_usart.c的1884行。
引用了__HAL_USART_CLEAR_FLAG、__HAL_USART_SEND_REQ、__USART_HandleTypeDef::ErrorCode、__USART_HandleTypeDef::FifoMode、HAL_DMA_Abort()、HAL_DMA_ERROR_TIMEOUT、HAL_DMA_GetError()、HAL_USART_ERROR_DMA、HAL_USART_ERROR_NONE、HAL_USART_STATE_READY、__USART_HandleTypeDef::hdmarx、__USART_HandleTypeDef::hdmatx、__USART_HandleTypeDef::Instance、__USART_HandleTypeDef::RxXferCount、__USART_HandleTypeDef::State、__USART_HandleTypeDef::TxXferCount、USART_CLEAR_FEF、USART_CLEAR_NEF、USART_CLEAR_OREF、USART_CLEAR_PEF、USART_FIFOMODE_ENABLE、USART_RXDATA_FLUSH_REQUEST、USART_TXDATA_FLUSH_REQUEST以及__DMA_HandleTypeDef::XferAbortCallback。
| HAL_StatusTypeDef HAL_USART_Abort_IT | ( | USART_HandleTypeDef * | husart | ) |
中止正在进行的传输(中断模式)。
| husart | USART句柄。 |