210#ifdef HAL_USART_MODULE_ENABLED
216#define DUMMY_DATA 0xFFFFU
217#define USART_TIMEOUT_VALUE 22000U
228#if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
248 uint32_t Tickstart, uint32_t Timeout);
316#if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
317 USART_InitCallbacksToDefault(husart);
319 if (husart->MspInitCallback == NULL)
325 husart->MspInitCallback(husart);
340 CLEAR_BIT(husart->
Instance->CR2, USART_CR2_LINEN);
341 CLEAR_BIT(husart->
Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN));
375#if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
376 if (husart->MspDeInitCallback == NULL)
381 husart->MspDeInitCallback(husart);
426#if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
448 pUSART_CallbackTypeDef pCallback)
452 if (pCallback == NULL)
455 husart->
ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK;
464 case HAL_USART_TX_HALFCOMPLETE_CB_ID :
465 husart->TxHalfCpltCallback = pCallback;
468 case HAL_USART_TX_COMPLETE_CB_ID :
469 husart->TxCpltCallback = pCallback;
472 case HAL_USART_RX_HALFCOMPLETE_CB_ID :
473 husart->RxHalfCpltCallback = pCallback;
476 case HAL_USART_RX_COMPLETE_CB_ID :
477 husart->RxCpltCallback = pCallback;
480 case HAL_USART_TX_RX_COMPLETE_CB_ID :
481 husart->TxRxCpltCallback = pCallback;
484 case HAL_USART_ERROR_CB_ID :
485 husart->ErrorCallback = pCallback;
488 case HAL_USART_ABORT_COMPLETE_CB_ID :
489 husart->AbortCpltCallback = pCallback;
492 case HAL_USART_MSPINIT_CB_ID :
493 husart->MspInitCallback = pCallback;
496 case HAL_USART_MSPDEINIT_CB_ID :
497 husart->MspDeInitCallback = pCallback;
502 husart->
ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK;
513 case HAL_USART_MSPINIT_CB_ID :
514 husart->MspInitCallback = pCallback;
517 case HAL_USART_MSPDEINIT_CB_ID :
518 husart->MspDeInitCallback = pCallback;
523 husart->
ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK;
533 husart->
ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK;
569 case HAL_USART_TX_HALFCOMPLETE_CB_ID :
573 case HAL_USART_TX_COMPLETE_CB_ID :
577 case HAL_USART_RX_HALFCOMPLETE_CB_ID :
581 case HAL_USART_RX_COMPLETE_CB_ID :
585 case HAL_USART_TX_RX_COMPLETE_CB_ID :
589 case HAL_USART_ERROR_CB_ID :
593 case HAL_USART_ABORT_COMPLETE_CB_ID :
597 case HAL_USART_MSPINIT_CB_ID :
601 case HAL_USART_MSPDEINIT_CB_ID :
607 husart->
ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK;
618 case HAL_USART_MSPINIT_CB_ID :
622 case HAL_USART_MSPDEINIT_CB_ID :
628 husart->
ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK;
638 husart->
ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK;
745 const uint8_t *ptxdata8bits;
746 const uint16_t *ptxdata16bits;
751 if ((pTxData == NULL) || (Size == 0))
772 ptxdata16bits = (
const uint16_t *) pTxData;
776 ptxdata8bits = pTxData;
777 ptxdata16bits = NULL;
787 if (ptxdata8bits == NULL)
789 husart->
Instance->DR = (uint16_t)(*ptxdata16bits & (uint16_t)0x01FF);
794 husart->
Instance->DR = (uint8_t)(*ptxdata8bits & (uint8_t)0xFF);
834 uint8_t *prxdata8bits;
835 uint16_t *prxdata16bits;
840 if ((pRxData == NULL) || (Size == 0))
860 prxdata16bits = (uint16_t *) pRxData;
864 prxdata8bits = pRxData;
865 prxdata16bits = NULL;
887 if (prxdata8bits == NULL)
889 *prxdata16bits = (uint16_t)(husart->
Instance->DR & (uint16_t)0x01FF);
896 *prxdata8bits = (uint8_t)(husart->
Instance->DR & (uint8_t)0x0FF);
900 *prxdata8bits = (uint8_t)(husart->
Instance->DR & (uint8_t)0x07F);
934 uint16_t Size, uint32_t Timeout)
936 uint8_t *prxdata8bits;
937 uint16_t *prxdata16bits;
938 const uint8_t *ptxdata8bits;
939 const uint16_t *ptxdata16bits;
940 uint16_t rxdatacount;
945 if ((pTxData == NULL) || (pRxData == NULL) || (Size == 0))
955 if (((((uint32_t)pTxData) & 1U) != 0U) || ((((uint32_t)pRxData) & 1U) != 0U))
979 ptxdata16bits = (
const uint16_t *) pTxData;
980 prxdata16bits = (uint16_t *) pRxData;
984 prxdata8bits = pRxData;
985 ptxdata8bits = pTxData;
986 ptxdata16bits = NULL;
987 prxdata16bits = NULL;
993 while ((husart->
TxXferCount > 0U) || (rxdatacount > 0U))
1003 if (ptxdata8bits == NULL)
1005 husart->
Instance->DR = (uint16_t)(*ptxdata16bits & (uint16_t)0x01FF);
1010 husart->
Instance->DR = (uint8_t)(*ptxdata8bits & (uint8_t)0xFF);
1024 if (prxdata8bits == NULL)
1026 *prxdata16bits = (uint16_t)(husart->
Instance->DR & (uint16_t)0x01FF);
1033 *prxdata8bits = (uint8_t)(husart->
Instance->DR & (uint8_t)0x0FF);
1037 *prxdata8bits = (uint8_t)(husart->
Instance->DR & (uint8_t)0x07F);
1077 if ((pTxData == NULL) || (Size == 0))
1104 SET_BIT(husart->
Instance->CR1, USART_CR1_TXEIE);
1130 if ((pRxData == NULL) || (Size == 0))
1150 SET_BIT(husart->
Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE);
1155 SET_BIT(husart->
Instance->CR1, USART_CR1_RXNEIE);
1159 SET_BIT(husart->
Instance->CR3, USART_CR3_EIE);
1189 if ((pTxData == NULL) || (pRxData == NULL) || (Size == 0))
1210 SET_BIT(husart->
Instance->CR1, USART_CR1_RXNEIE);
1215 SET_BIT(husart->
Instance->CR1, USART_CR1_PEIE);
1219 SET_BIT(husart->
Instance->CR3, USART_CR3_EIE);
1222 SET_BIT(husart->
Instance->CR1, USART_CR1_TXEIE);
1245 const uint32_t *tmp;
1249 if ((pTxData == NULL) || (Size == 0))
1276 tmp = (
const uint32_t *)&pTxData;
1287 SET_BIT(husart->
Instance->CR3, USART_CR3_DMAT);
1316 if ((pRxData == NULL) || (Size == 0))
1356 tmp = (uint32_t *)&pRxData;
1373 SET_BIT(husart->
Instance->CR1, USART_CR1_PEIE);
1377 SET_BIT(husart->
Instance->CR3, USART_CR3_EIE);
1381 SET_BIT(husart->
Instance->CR3, USART_CR3_DMAR);
1385 SET_BIT(husart->
Instance->CR3, USART_CR3_DMAT);
1411 const uint32_t *tmp;
1415 if ((pTxData == NULL) || (pRxData == NULL) || (Size == 0))
1452 tmp = (uint32_t *)&pRxData;
1456 tmp = (
const uint32_t *)&pTxData;
1471 SET_BIT(husart->
Instance->CR1, USART_CR1_PEIE);
1475 SET_BIT(husart->
Instance->CR3, USART_CR3_EIE);
1479 SET_BIT(husart->
Instance->CR3, USART_CR3_DMAR);
1483 SET_BIT(husart->
Instance->CR3, USART_CR3_DMAT);
1505 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_DMAT);
1525 SET_BIT(husart->
Instance->CR3, USART_CR3_DMAT);
1541 uint32_t dmarequest = 0x00U;
1555 if (husart->
hdmatx != NULL)
1561 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_DMAT);
1571 if (husart->
hdmarx != NULL)
1577 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_DMAR);
1599 CLEAR_BIT(husart->
Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_TCIE));
1600 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_EIE);
1605 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_DMAT);
1608 if (husart->
hdmatx != NULL)
1621 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_DMAR);
1624 if (husart->
hdmarx != NULL)
1664 uint32_t AbortCplt = 0x01U;
1667 CLEAR_BIT(husart->
Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_TCIE));
1668 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_EIE);
1673 if (husart->
hdmatx != NULL)
1687 if (husart->
hdmarx != NULL)
1705 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_DMAT);
1708 if (husart->
hdmatx != NULL)
1728 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_DMAR);
1731 if (husart->
hdmarx != NULL)
1750 if (AbortCplt == 0x01U)
1763#if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
1765 husart->AbortCpltCallback(husart);
1783 uint32_t isrflags = READ_REG(husart->
Instance->SR);
1784 uint32_t cr1its = READ_REG(husart->
Instance->CR1);
1785 uint32_t cr3its = READ_REG(husart->
Instance->CR3);
1786 uint32_t errorflags = 0x00U;
1787 uint32_t dmarequest = 0x00U;
1790 errorflags = (isrflags & (uint32_t)(USART_SR_PE | USART_SR_FE | USART_SR_ORE | USART_SR_NE));
1791 if (errorflags == RESET)
1794 if (((isrflags & USART_SR_RXNE) != RESET) && ((cr1its & USART_CR1_RXNEIE) != RESET))
1808 if ((errorflags != RESET) && (((cr3its & USART_CR3_EIE) != RESET) || ((cr1its & (USART_CR1_RXNEIE | USART_CR1_PEIE)) != RESET)))
1811 if (((isrflags & USART_SR_PE) != RESET) && ((cr1its & USART_CR1_PEIE) != RESET))
1817 if (((isrflags & USART_SR_NE) != RESET) && ((cr3its & USART_CR3_EIE) != RESET))
1823 if (((isrflags & USART_SR_FE) != RESET) && ((cr3its & USART_CR3_EIE) != RESET))
1829 if (((isrflags & USART_SR_ORE) != RESET) && (((cr1its & USART_CR1_RXNEIE) != RESET) || ((cr3its & USART_CR3_EIE) != RESET)))
1837 if (((isrflags & USART_SR_RXNE) != RESET) && ((cr1its & USART_CR1_RXNEIE) != RESET))
1860 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_DMAR);
1863 if (husart->
hdmarx != NULL)
1878#if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
1880 husart->ErrorCallback(husart);
1890#if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
1892 husart->ErrorCallback(husart);
1902#if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
1904 husart->ErrorCallback(husart);
1916 if (((isrflags & USART_SR_TXE) != RESET) && ((cr1its & USART_CR1_TXEIE) != RESET))
1930 if (((isrflags & USART_SR_TC) != RESET) && ((cr1its & USART_CR1_TCIE) != RESET))
2073 return husart->
State;
2103#if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
2127 if ((hdma->
Instance->CR & DMA_SxCR_CIRC) == 0U)
2134 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_DMAT);
2137 SET_BIT(husart->
Instance->CR1, USART_CR1_TCIE);
2145#if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
2147 husart->TxCpltCallback(husart);
2166#if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
2168 husart->TxHalfCpltCallback(husart);
2185 if ((hdma->
Instance->CR & DMA_SxCR_CIRC) == 0U)
2190 CLEAR_BIT(husart->
Instance->CR1, USART_CR1_PEIE);
2191 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_EIE);
2195 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_DMAR);
2196 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_DMAT);
2201#if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
2203 husart->RxCpltCallback(husart);
2212#if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
2214 husart->TxRxCpltCallback(husart);
2227#if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
2229 husart->RxCpltCallback(husart);
2238#if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
2240 husart->TxRxCpltCallback(husart);
2259#if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
2261 husart->RxHalfCpltCallback(husart);
2276 uint32_t dmarequest = 0x00U;
2298#if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
2300 husart->ErrorCallback(husart);
2319 uint32_t Tickstart, uint32_t Timeout)
2327 if ((Timeout == 0U) || ((
HAL_GetTick() - Tickstart) > Timeout))
2330 CLEAR_BIT(husart->
Instance->CR1, USART_CR1_TXEIE);
2333 CLEAR_BIT(husart->
Instance->CR1, USART_CR1_RXNEIE);
2336 CLEAR_BIT(husart->
Instance->CR1, USART_CR1_PEIE);
2339 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_EIE);
2361 CLEAR_BIT(husart->
Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE));
2375 CLEAR_BIT(husart->
Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE));
2376 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_EIE);
2394#if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
2396 husart->ErrorCallback(husart);
2418 if (husart->
hdmarx != NULL)
2437#if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
2439 husart->AbortCpltCallback(husart);
2461 if (husart->
hdmatx != NULL)
2480#if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
2482 husart->AbortCpltCallback(husart);
2498 const uint16_t *tmp;
2505 husart->
Instance->DR = (uint16_t)(*tmp & (uint16_t)0x01FF);
2516 CLEAR_BIT(husart->
Instance->CR1, USART_CR1_TXEIE);
2519 SET_BIT(husart->
Instance->CR1, USART_CR1_TCIE);
2538 CLEAR_BIT(husart->
Instance->CR1, USART_CR1_TCIE);
2541 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_EIE);
2545#if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
2547 husart->TxCpltCallback(husart);
2564 uint8_t *pdata8bits;
2565 uint16_t *pdata16bits;
2572 pdata16bits = (uint16_t *) husart->
pRxBuffPtr;
2573 *pdata16bits = (uint16_t)(husart->
Instance->DR & (uint16_t)0x01FF);
2583 *pdata8bits = (uint8_t)(husart->
Instance->DR & (uint8_t)0x00FF);
2587 *pdata8bits = (uint8_t)(husart->
Instance->DR & (uint8_t)0x007F);
2598 CLEAR_BIT(husart->
Instance->CR1, USART_CR1_RXNEIE);
2601 CLEAR_BIT(husart->
Instance->CR1, USART_CR1_PEIE);
2604 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_EIE);
2607#if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
2609 husart->RxCpltCallback(husart);
2640 const uint16_t *pdatatx16bits;
2641 uint16_t *pdatarx16bits;
2651 pdatatx16bits = (
const uint16_t *) husart->
pTxBuffPtr;
2652 husart->
Instance->DR = (uint16_t)(*pdatatx16bits & (uint16_t)0x01FF);
2665 CLEAR_BIT(husart->
Instance->CR1, USART_CR1_TXEIE);
2676 pdatarx16bits = (uint16_t *) husart->
pRxBuffPtr;
2677 *pdatarx16bits = (uint16_t)(husart->
Instance->DR & (uint16_t)0x01FF);
2701 CLEAR_BIT(husart->
Instance->CR1, USART_CR1_RXNEIE);
2704 CLEAR_BIT(husart->
Instance->CR1, USART_CR1_PEIE);
2707 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_EIE);
2711#if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
2713 husart->TxRxCpltCallback(husart);
2738 uint32_t tmpreg = 0x00U;
2754 CLEAR_BIT(husart->
Instance->CR1, (USART_CR1_TE | USART_CR1_RE));
2759 tmpreg &= (uint32_t)~((uint32_t)(USART_CR2_CPHA | USART_CR2_CPOL | USART_CR2_CLKEN | USART_CR2_LBCL | USART_CR2_STOP));
2768 WRITE_REG(husart->
Instance->CR2, (uint32_t)tmpreg);
2774 tmpreg &= (uint32_t)~((uint32_t)(USART_CR1_M | USART_CR1_PCE | USART_CR1_PS | USART_CR1_TE | \
2775 USART_CR1_RE | USART_CR1_OVER8));
2785 WRITE_REG(husart->
Instance->CR1, (uint32_t)tmpreg);
2789 CLEAR_BIT(husart->
Instance->CR3, (USART_CR3_RTSE | USART_CR3_CTSE));
2792#if defined(USART6) && defined(UART9) && defined(UART10)
2798#elif defined(USART6)
HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma)
Aborts the DMA Transfer.
HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma)
Aborts the DMA Transfer in Interrupt mode.
HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength)
Start the DMA Transfer with interrupt enabled.
uint32_t HAL_GetTick(void)
Provides a tick value in millisecond.
uint32_t HAL_RCC_GetPCLK1Freq(void)
Returns the PCLK1 frequency.
uint32_t HAL_RCC_GetPCLK2Freq(void)
Returns the PCLK2 frequency.
#define USART_CLOCK_ENABLE
#define HAL_USART_ERROR_NONE
#define HAL_USART_ERROR_NE
#define HAL_USART_ERROR_PE
#define HAL_USART_ERROR_FE
#define HAL_USART_ERROR_DMA
#define HAL_USART_ERROR_ORE
HAL_StatusTypeDef HAL_USART_Init(USART_HandleTypeDef *husart)
Initialize the USART mode according to the specified parameters in the USART_InitTypeDef and initiali...
void HAL_USART_MspDeInit(USART_HandleTypeDef *husart)
USART MSP DeInit.
HAL_StatusTypeDef HAL_USART_DeInit(USART_HandleTypeDef *husart)
DeInitializes the USART peripheral.
void HAL_USART_MspInit(USART_HandleTypeDef *husart)
USART MSP Init.
HAL_StatusTypeDef HAL_USART_Transmit_DMA(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16_t Size)
Simplex Send an amount of data in DMA mode.
HAL_StatusTypeDef HAL_USART_Receive_IT(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size)
Simplex Receive an amount of data in non-blocking mode.
HAL_StatusTypeDef HAL_USART_Receive(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size, uint32_t Timeout)
Full-Duplex Receive an amount of data in blocking mode.
HAL_StatusTypeDef HAL_USART_Transmit_IT(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16_t Size)
Simplex Send an amount of data in non-blocking mode.
HAL_StatusTypeDef HAL_USART_DMAResume(USART_HandleTypeDef *husart)
Resumes the DMA Transfer.
void HAL_USART_TxRxCpltCallback(USART_HandleTypeDef *husart)
Tx/Rx Transfers completed callback for the non-blocking process.
HAL_StatusTypeDef HAL_USART_TransmitReceive_DMA(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint8_t *pRxData, uint16_t Size)
Full-Duplex Transmit Receive an amount of data in DMA mode.
void HAL_USART_IRQHandler(USART_HandleTypeDef *husart)
This function handles USART interrupt request.
HAL_StatusTypeDef HAL_USART_Transmit(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16_t Size, uint32_t Timeout)
Simplex Send an amount of data in blocking mode.
HAL_StatusTypeDef HAL_USART_TransmitReceive(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint8_t *pRxData, uint16_t Size, uint32_t Timeout)
Full-Duplex Send and Receive an amount of data in full-duplex mode (blocking mode).
void HAL_USART_ErrorCallback(USART_HandleTypeDef *husart)
USART error callbacks.
HAL_StatusTypeDef HAL_USART_TransmitReceive_IT(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint8_t *pRxData, uint16_t Size)
Full-Duplex Send and Receive an amount of data in full-duplex mode (non-blocking).
void HAL_USART_RxCpltCallback(USART_HandleTypeDef *husart)
Rx Transfer completed callbacks.
HAL_StatusTypeDef HAL_USART_Abort(USART_HandleTypeDef *husart)
Abort ongoing transfer (blocking mode).
void HAL_USART_TxHalfCpltCallback(USART_HandleTypeDef *husart)
Tx Half Transfer completed callbacks.
HAL_StatusTypeDef HAL_USART_Receive_DMA(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size)
Full-Duplex Receive an amount of data in DMA mode.
HAL_StatusTypeDef HAL_USART_DMAPause(USART_HandleTypeDef *husart)
Pauses the DMA Transfer.
HAL_StatusTypeDef HAL_USART_DMAStop(USART_HandleTypeDef *husart)
Stops the DMA Transfer.
void HAL_USART_TxCpltCallback(USART_HandleTypeDef *husart)
Tx Transfer completed callbacks.
void HAL_USART_AbortCpltCallback(USART_HandleTypeDef *husart)
USART Abort Complete callback.
HAL_StatusTypeDef HAL_USART_Abort_IT(USART_HandleTypeDef *husart)
Abort ongoing transfer (Interrupt mode).
void HAL_USART_RxHalfCpltCallback(USART_HandleTypeDef *husart)
Rx Half Transfer completed callbacks.
HAL_USART_StateTypeDef HAL_USART_GetState(const USART_HandleTypeDef *husart)
Returns the USART state.
uint32_t HAL_USART_GetError(const USART_HandleTypeDef *husart)
Return the USART error code.
#define __HAL_USART_GET_FLAG(__HANDLE__, __FLAG__)
Check whether the specified USART flag is set or not.
#define __HAL_USART_ENABLE(__HANDLE__)
Enable USART.
#define __HAL_USART_DISABLE(__HANDLE__)
Disable USART.
#define __HAL_USART_CLEAR_OREFLAG(__HANDLE__)
Clear the USART ORE pending flag.
#define __HAL_USART_CLEAR_FLAG(__HANDLE__, __FLAG__)
Clear the specified USART pending flags.
HAL_USART_StateTypeDef
HAL State structures definition.
@ HAL_USART_STATE_BUSY_TX
@ HAL_USART_STATE_BUSY_RX
@ HAL_USART_STATE_BUSY_TX_RX
#define USART_PARITY_NONE
static void USART_SetConfig(USART_HandleTypeDef *husart)
Configures the USART peripheral.
static void USART_DMAError(DMA_HandleTypeDef *hdma)
DMA USART communication error callback.
static void USART_DMAReceiveCplt(DMA_HandleTypeDef *hdma)
DMA USART receive process complete callback.
static void USART_DMATxAbortCallback(DMA_HandleTypeDef *hdma)
DMA USART Tx communication abort callback, when initiated by user (To be called at end of DMA Tx Abor...
static HAL_StatusTypeDef USART_WaitOnFlagUntilTimeout(USART_HandleTypeDef *husart, uint32_t Flag, FlagStatus Status, uint32_t Tickstart, uint32_t Timeout)
This function handles USART Communication Timeout. It waits until a flag is no longer in the specifie...
static HAL_StatusTypeDef USART_EndTransmit_IT(USART_HandleTypeDef *husart)
Wraps up transmission in non blocking mode.
static HAL_StatusTypeDef USART_Transmit_IT(USART_HandleTypeDef *husart)
Simplex Send an amount of data in non-blocking mode.
static HAL_StatusTypeDef USART_Receive_IT(USART_HandleTypeDef *husart)
Simplex Receive an amount of data in non-blocking mode.
static void USART_DMATransmitCplt(DMA_HandleTypeDef *hdma)
Initialize the callbacks to their default values.
static void USART_DMAAbortOnError(DMA_HandleTypeDef *hdma)
DMA USART communication abort callback, when initiated by HAL services on Error (To be called at end ...
static void USART_DMARxHalfCplt(DMA_HandleTypeDef *hdma)
DMA USART receive process half complete callback.
static void USART_DMARxAbortCallback(DMA_HandleTypeDef *hdma)
DMA USART Rx communication abort callback, when initiated by user (To be called at end of DMA Rx Abor...
static void USART_EndTxTransfer(USART_HandleTypeDef *husart)
End ongoing Tx transfer on USART peripheral (following error detection or Transmit completion).
static HAL_StatusTypeDef USART_TransmitReceive_IT(USART_HandleTypeDef *husart)
Full-Duplex Send receive an amount of data in full-duplex mode (non-blocking).
static void USART_DMATxHalfCplt(DMA_HandleTypeDef *hdma)
DMA USART transmit process half complete callback.
static void USART_EndRxTransfer(USART_HandleTypeDef *husart)
End ongoing Rx transfer on USART peripheral (following error detection or Reception completion).
#define IS_USART_POLARITY(CPOL)
#define IS_USART_WORD_LENGTH(LENGTH)
#define IS_USART_PHASE(CPHA)
#define IS_USART_STOPBITS(STOPBITS)
#define USART_BRR(_PCLK_, _BAUD_)
#define IS_USART_BAUDRATE(BAUDRATE)
#define IS_USART_PARITY(PARITY)
#define IS_USART_LASTBIT(LASTBIT)
#define IS_USART_MODE(MODE)
#define USART_WORDLENGTH_9B
#define USART_WORDLENGTH_8B
#define assert_param(expr)
This file contains all the functions prototypes for the HAL module driver.
#define HAL_IS_BIT_SET(REG, BIT)
HAL_StatusTypeDef
HAL Status structures definition
#define __HAL_UNLOCK(__HANDLE__)
#define __HAL_LOCK(__HANDLE__)
DMA handle Structure definition.
void(* XferAbortCallback)(struct __DMA_HandleTypeDef *hdma)
void(* XferCpltCallback)(struct __DMA_HandleTypeDef *hdma)
void(* XferErrorCallback)(struct __DMA_HandleTypeDef *hdma)
void(* XferHalfCpltCallback)(struct __DMA_HandleTypeDef *hdma)
DMA_Stream_TypeDef * Instance
USART handle Structure definition.
DMA_HandleTypeDef * hdmatx
__IO uint16_t RxXferCount
__IO uint16_t TxXferCount
const uint8_t * pTxBuffPtr
DMA_HandleTypeDef * hdmarx
__IO HAL_USART_StateTypeDef State